本文结合数十项实际项目经验,列出项目经常出现测评问题。
1、CORS配置错误
问题:导致页面可跨域访问攻击者所构造的恶意链接,对应用造成安全风险。
处理方法:只允许特定域名访问
对nginx.conf文件中http下面增加
map $http_origin $allow_cors {
default 1;
"~http://10.0.0.1" http://10.0.0.1;
"~*" 0;
}
在对应api转发的location 中增加(放在proxy_pass前)
add_header Access-Control-Allow-Origin $http_origin;
add_header Access-Control-Allow-Methods '*';
add_header Access-Control-Allow-Headers '*';
if ($allow_cors = 0){
return 403;
}
2、点击挟持
问题:攻击者通过内嵌frame包含本网站,显示诱导信息供用户点击。
处理方法:只允许同域名下frame内嵌
对nginx.conf文件中http下面增加
add_header X-Frame-Options SAMEORIGIN;
表示页面可以在相同域名页面中frame中展示。
3、短信验证码爆破
问题:短信验证码无错误次数限制
处理方法:
1.增加短信验证码错误次数限制,超过限制后,原验证码失效,错误次数推荐5
次以内
2.增加短信验证码失效机制,推荐失效时间在180秒以内
4、用户名枚举
问题:用户登录根据用户名或者密码错误提示,进行用户名或者密码爆破。
处理方法:统一提示用户名或密码错误。
5、弱口令
问题:用户登录弱口令问题
解决方法:
1、验证码登录
2、禁常见的弱密码.设置密码定期修改策略.
6、密码明文传输
问题:攻击者截取密码,产生盗用风险
处理方法:密码加密处理