网站登录如何防止撞库?

2019-01-09 16:34:36 +08:00
 fox0001
公司网站再次遭遇撞库。对方在圣诞节前一周,大约试了 200 万个 email 登录。估计以为会做圣诞节促销,流量暴增而会忽略其行为吧。由于登录错误的日志暴涨而被发现了。

对方用了一大堆 IP 来撞库,大概每秒 7 个请求,一个 IP 大约隔 10 秒访问一次登录请求。而且每个 IP 都是从首页开始访问,一定程度上模拟了用户行为。

目前网站登录错误后会要求输入图片验证码,但是该验证比较简单。虽然是个问题,但是再复杂的验证码也能破解。

那么除了加强验证码,还能如何防止撞库?
7844 次点击
所在节点    问与答
63 条回复
hanxiV2EX
2019-01-09 20:00:05 +08:00
异常流量监控,对频繁登录的做二次登录验证就好了,发邮件或者短信。
hanxiV2EX
2019-01-09 20:03:06 +08:00
一个 ip 一天登录了两次以上就走二次验证也是可行的,正常客户端都会缓存 token 的,对正常用户没啥影响。
fox0001
2019-01-09 20:06:36 +08:00
@d5 #17 就是使用 Web 登录界面撞库的,不是调用登录 api。就是想问问除了增强验证码(什么极验、recaptcha 之类),还有什么好方法
loading
2019-01-09 20:08:01 +08:00
一次输错就出验证码。
fox0001
2019-01-09 20:10:29 +08:00
@dapang1221 #19 不是模拟别的页面,是模拟人类访问网站。可以理解为对方就是个浏览器,但它是机器在操作。目前也只有根据访问情况,记录异常 IP 了。但如果对方的 IP 是通过类似拨号获得 IP 的话,容易误伤正常客户。网站没有记录客户手机号,强验证也只有发送 email 了
fox0001
2019-01-09 20:12:08 +08:00
@loading #24 目测对方破解了验证码,就是能够识别验证码图片上的文字。所以问,除了加强验证码,还能如何防止撞库
fox0001
2019-01-09 20:13:51 +08:00
@hilbertz #20 这么据说被破解了,也不是一劳永逸的方法
loading
2019-01-09 20:19:24 +08:00
如果是有价值网站,除了用高强度验证码。可能还有就是短信登录或者微信扫码这种了。

毕竟对面有 ip 池了。什么浏览器指纹这些,针对性写代码也能过的。
loading
2019-01-09 20:20:53 +08:00
一般撞库一个账户只会登录一次,针对用户名是没用了,你只能限制 ip,然后你对面有一堆 ip。
Humorce
2019-01-09 20:27:18 +08:00
虽然确实是技术性的讨论,大家无偿提供给你的建议你都不认同或者觉得不够好,那么你应当让公司花钱找更专业的人士去解决,而不是领一份工资死干。如果你就是花钱请回来解决问题的,那么回到第一个逗号后面重新看一次。

试都没试过就以 据说 /可能 之类这样的字眼去回,这样不好,当然我这样回复也不好。
hilbertz
2019-01-09 20:28:16 +08:00
@fox0001 recaptcha v3 还没破解,即使像 v2 那样的破解,也不太可能用于大规模撞库,接入 recaptcha 就相当于 google 帮你监控用户登录行为,你不太可能找到比这个更有效的防护手段
tabris17
2019-01-09 20:30:05 +08:00
两步验证
tabris17
2019-01-09 20:31:18 +08:00
首先需要白名单,也就是用户常用的 IP 地理位置和登陆设备信息(包括浏览器指纹),如果地理位置异常或设备异常,就升级成两步验证
alvin666
2019-01-09 20:32:22 +08:00
验证码呗,我见过最 bt 的码是 discuz 生成的,gif+随机中文字符(大小颜色形状不定还有干扰线)其他帧是随机数字和英文...
用户用起来想骂娘,但是至少挡住了
fox0001
2019-01-09 22:01:27 +08:00
@hilbertz #31 v3 目测还可以
crab
2019-01-09 22:02:33 +08:00
@hilbertz 谷歌的 recaptcha 这个国内验证码没被和谐吗
fox0001
2019-01-09 22:29:16 +08:00
@Humorce #30 在 V2 发帖前,跟同事讨论过了,也 Google 过相关的解决方案,也不尽满意。觉得做 Web 的,都会遇到这个问题,或者忽略了这个问题,大家讨论一下而已。那些天天问这问那的帖,是不是也要让他们去付费找答案?如果真需要达到一定程度的安全级别,登录就不是输个账户密码这么简单了。

对于一份工资死干的问题,我觉得,感兴趣的事情,就算是交给第三方去处理,为什么就不能自己去想想?

另外,这几天刚好看到 reCAPTCHA 被破解的新闻,但是没细看,所以用“据说”。个人觉得没毛病。
0ZXYDDu796nVCFxq
2019-01-09 22:36:37 +08:00
错 5 次封一个小时 IP,错 10 次封 24 小时,连续三天被封就永久封
hanxiV2EX
2019-01-10 00:14:01 +08:00
二次验证只在异常情况下出现就得了,正常情况可能就第一次出现,后面就记住密码,采用 token,相当于首次换设备登录需要激活。qq 和微信都这样干的。对业务人员影响并不大吧。
vsitebon
2019-01-10 02:29:53 +08:00
使用 reCaptcha 的话,可以先观望一下这个库: https://github.com/ecthros/uncaptcha2

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/525423

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX