逻辑漏洞
内容参考
https://www.cnblogs.com/nongchaoer/p/12201393.html
https://www.cnblogs.com/kaixinyufeng/p/8052784.html
由于程序员在写代码时的疏忽或安全意识不足导致逻辑上出现漏洞,便是逻辑漏洞。
常见的就是越权、支付金额任意修改、批量注册、遍历用户账号等。
具体实例
1、注册界面
注册只需要填用户名和密码,不需要手机验证码或邮箱验证码或图片验证码
后果就是导致可以批量注册然后试出那些手机或邮箱已被注册,从而达到获取其他用户的手机或邮箱,造成信息泄露。
2、登陆短信验证码
由于验证码的错误没有限制,可以无限试错,就可以使用爆破。
例子太多了,看上面两个帖子吧。
01 验证码策略
1、验证码至少是6位数字,且有时间限制、获取次数限制和错误次数限制。
2、验证码的验证要放到服务端执行,不能将验证码返回到前端。
3、若只能放到前端,必须采取加密策略。
4、多步校验,比如找回密码第一步验证了,最后一步提交时也要验证。
02 权限策略
1、登录凭证要时刻验证,不能只在登录接口处进行登录验证,要任何需要登录权限的地方进行登录验证(cookie,ssid,token等)。
2、用户操作要进行对应的权限检查,不能只根据操作参数或链接执行功能。
3、Cookie要进行严格加密,并与用户session绑定。
4、采用“最小权限原则”进行访问控制。
03 密匙签名策略
1、邮箱找回密码的功能,其认证参数要唯一且不可预测,尽量减少不必要的参数。
2、支付功能一定要使用严格的签名算法,避免任何参数的修改。