nikiss

逻辑漏洞

内容参考

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、支付功能一定要使用严格的签名算法,避免任何参数的修改。

posted on 2021-03-16 14:52  nikiss  阅读(140)  评论(0编辑  收藏  举报