这个在安全圈子里叫撞库,即通过已有的账号密码到其它网站去尝试。
而针对撞库的防范是一个人机对抗的过程,需要通过一些手段来防止通过程序来扫描,但是这些手段也不能影响正常的用户体验,说说经常用到的一些方法:
最简单的方式就是增加一个图片验证码,当然对于现在图片验证码的破解程序也是越来越厉害,网上商业的开源的验证码破解工具一大堆,如果做图片验证码来防范的话,就要考虑一个问题,如何防止图片验证码被破解。对于防止验证码破解的话,可以适当增加验证码生成的强度,业内做的比较好的验证码,可以参考下淘宝的、百度贴吧的中文验证码也不错。
另外一种方式就是自动识别异常IP,如果机器扫描的话,肯定会有一些特征能被你抓取到,比如:单位时间内操作次数,比如1分钟尝试登录超过100次、正常用户不可能有这么大的频度的;1分钟内尝试登录错误账号超过一定次数;其它的自己扩展。对于异常的IP,整理一个非常严格的库,甚至直接禁止这些IP访问网站,一个一个手工添加肯定很累,程序对程序,应该没问题。黑客使用的代理再多,总归是有限的。
遇到专业的撞库,黑客黑掉了整个市的dhcp,分配了几十个1-254的c段来扫,每个IP仅仅尝试1-3次,这种低频度的撞库确实不好防护。在这里提出一个简单的思路,比如真的是这种的话,那么针对这个市的IP设计一个黑名单,单独的策略。
另外一种思路是用户账号被撞后的保护,比如判断下用户的登录IP,是否在常用的地区,如果不是,直接锁定账号,让用户通过手机、邮箱等手段来解锁,这方面做的比较好的可以参考腾讯和淘宝。
当然,这些策略结合起来的话,效果更好。
其实有几种方法:
1. 验证码,验证码是最好的保护方式。但问题是api接口怎么办?互联网公司经常出现老的api接口无法下线。或者出现接口是别人写的,很多人使用没人敢碰的情况,那就到了第二种方法
2. 恶意IP库,你会发现其实大部分撞库的出现,其源头还是肉鸡、代理、botnet,如果你有这些恶意源头的IP,就可以在对方访问的时候直接前端。而恶意IP库目前拥有最全数据的应该是这家公司: ThreatBook - 安全威胁情报专业提供商 。
3. 还有一种方法实现,其实是以退为进,就是让他撞,但是观测他的访问路径链提取算法,以此来作为行为分析判断是否为恶意 如果是则断掉。这个类似风控的手段。




