如何防止登录接口被攻击呢?
技术架构是这样的(不能暴露公司机密,所以下面接口比较简陋):
网页调用登录接口A,登录接口A 实际上是调用接口B进行业务逻辑.
所以真正干活的是接口B,接口A 只是进行了转发和包装.
如果要攻击,只能攻击接口A,因为接口B没有暴露,也不公开.
那么如何防止接口A 被攻击呢?
比如不断的访问接口A,每秒钟访问10次? 这样很容易导致服务器扛不住宕机.
比如访问地址是 http://123.21.23.2/user/login?username=whuang&password=zxcvbnm
(1)用户名相同的情况
规则:
(a)连续三次登录失败,则增加图形验证码
例如
(b)连续6次失败(包括无图形验证码的情况),则无法马上登录,必须等待5分钟
5分钟之后,就可登录,并且没有验证码,然后重复规则(a)
(c)如果连续登录失败24次,则禁止登录,并且提示联系客服.
分析:
规则(b)为什么要增加图形验证码,是为了防止程序自动化攻击.要求输入图形验证码,就能够保证执行登录操作的是人(不考虑程序能够读取验证码的情况,若哪位大侠有这种程序,请发给我)
规则(c),连续登录失败24次,就可以当做是程序自动化攻击了,所以直接禁止登录,但是也可能是未知的原因(比如手机app本身的bug登录失败就不断尝试登录)导致真正用户登录失败,所以提示联系客服.
我qq邮箱:1287789687@qq.com