网站登录如何防止撞库?

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

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

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

那么除了加强验证码,还能如何防止撞库?
8045 次点击
所在节点    问与答
63 条回复
BBge
2019-01-10 03:14:45 +08:00
@hilbertz recaptcha 那个国内用不了吧
BBge
2019-01-10 03:15:44 +08:00
简单的 直接换腾讯的语义验证码 暂时我没了解到有打码网站能接这个活
KasuganoSoras
2019-01-10 03:22:17 +08:00
膜一下……我之前写了个登录网页,单 IP 密码错误一次就要等 10 秒后才能再试一次,再错一次再+1s ……有一次我看到数据库里有个人错了 100 多次,+100s
yksoft1ex
2019-01-10 08:10:04 +08:00
@fox0001 那就再加个权重,同一 IP 尝试登录错误连续多少次后就进入临时黑名单。
NicholasYX
2019-01-10 08:14:58 +08:00
加手机验证码?
dengtongcai
2019-01-10 08:28:44 +08:00
验证码比较直接…
KgM4gLtF0shViDH3
2019-01-10 08:50:52 +08:00
@fox0001 #13 没有手机号用邮箱验证吗呀
yksoft1ex
2019-01-10 09:06:05 +08:00
@bestkayle 这里的前提是邮箱密码撞库者基本掌握了,邮箱验证码没用。
iBaoger
2019-01-10 09:08:00 +08:00
购买一个攻击 IP 标识库,先干掉一波,剩下的自己寻找标识
Light3
2019-01-10 09:13:10 +08:00
兄弟 你先整个 难点的验证码 验证码不过 不给登陆
压力就慢慢小了
说实话 现在 ip 换一个 太容易了..
之前被搞 一小时 换了 5 600 个 ip..
KgM4gLtF0shViDH3
2019-01-10 09:14:48 +08:00
@yksoft1ex #46 要是有邮箱密码的话都能充值密码了吧,还要撞库?
jacketma
2019-01-10 10:13:01 +08:00
双向多重防护,没有必杀技,就是攻防。用户端每个 IP 试错次数,可试次数,频率,验证码都要上,服务端对每个账号也做访问次数做限制,每个账号一天内试错三次就禁止登录,第二天解锁或者重置密码可登录。
整体措施就是在正常用户体验和攻击难度之间取平衡点,没有一劳永逸的秘诀。
yzkcy
2019-01-10 10:28:04 +08:00
做安全的来说两句。
首先,楼上评论里的"错误登陆次数过多过频直接禁止登录,或者 ban IP"都是扯淡。除了误伤正常用户,用处不大。
真这么做了,竞争对手要笑哭了,整天撞你。

防撞库现在主流还是验证码,既然你都知道你们验证码非常简单,那就上个难的呗。
至于 "但是再复杂的验证码也能破解",这就是废话。
攻击是要成本的,如果成本大于收益的话,谁还搞你?

建议就是
1.上个 NB 的验证码(业内很多解决方案)
2.监测环境,二次验证
3.收集风险账户信息,强制改密等(一些被脱过库的大站一般都这么做)
4. ......
locoz
2019-01-10 10:38:48 +08:00
@BBge #42 有的,只是人家只给老用户用。。
locoz
2019-01-10 10:48:35 +08:00
图片验证码过于简单了,首先这个必须升级一下。
然后就是可以用 rtbasia 这种识别 IP 真人概率的,一般 IP 量很大的那种情况,低质量 IP 占大部分,也就是真人概率比较低的那些,可以直接弹二次验证。
还有登陆 IP 跟注册、常用 IP 不在同一个地域的也直接弹二次验证。
jinhan13789991
2019-01-10 11:40:50 +08:00
放弃密码登录,强制每次登录都输入短信验证码。
问题解决
zzzzzzZ
2019-01-10 14:08:24 +08:00
@yzkcy
赞同,ban 账号和 banIP 都是扯淡,增加攻击成本才是合理的方式
l00t
2019-01-10 14:56:36 +08:00
要是我就让它撞呗。你用户的密码被人撞出来了,你自己密码没设好咯,关我什么事。要安全?我给你加个人脸识别,你愿意先存个脸在这里吗?
arthasgxy
2019-01-10 16:00:41 +08:00
怎么防,我是不知道。。。
但怎么攻,我还真知道一点。。。 处于好奇干过一点小坏事。。。

so,其实个人感觉上面提到的最靠谱的就是加强验证码,提高攻击的难度了。。。
当然如果对方真要想搞你,额,不知道谷歌的那种验证方案有人破掉没有。但总归,多数验证破起来难度真不大,就算搞不定,无非整个打马接口花点小钱也搞定了。

个人推荐与其从这个角度去想,不如直接群发个邮件消息:年底盗号多发期,建议大家妥善保管密码,如有与其他网站密码相同、相似的,建议更改密码,巴拉巴拉
arthasgxy
2019-01-10 16:05:51 +08:00
哦哦,对,
如果检测到用户不是在经常登录的 ip 登录,就要用户验证下手机 or 邮箱。
然后验证没通过的话,就给对应手机 邮箱发个消息:有人在 xx ip 尝试登录, 但验证没通过,如果不是你自己干的,说明密码泄露了,赶紧改密码

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

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

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

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

© 2021 V2EX