1 yksoft1ex 2019-01-09 16:49:47 +08:00 用户表里面加一个异常状态,错误登陆次数过多过频直接禁止登录,要求用户修改密码。 |
2 yksoft1ex 2019-01-09 16:53:53 +08:00 或者搞个 geoip 数据库,短时间 IP 的地理位置反复更改,按异常登录处理。 |
3 CallMeReznov 2019-01-09 16:57:58 +08:00 运维方面先用 nginx 之类的过滤功能按照规则过滤一部分,可以减少一部分不必要的后端压力 后端按照常规密码错误次数等方式屏蔽禁用账户,让客户修改密码 |
4 fox0001 OP @yksoft1ex #1 这个撞库是一个 IP 尝试多个 email 登录。估计对方有一堆账号密码,逐个来试。所以不能记录用户帐号的异常状态 |
5 fox0001 OP @CallMeReznov #3 这个撞库不是穷举,应该是拿着一大堆 email 和密码逐个试。要禁的话,只能禁止某 IP 一段时间不能登录 |
![]() | 7 fy 2019-01-09 17:18:17 +08:00 惩罚冷却怎么样,同一 IP,第一次错误 5s,30s 内第二次错误 10s,然后五六次以后增加到 30s,10 次 1min,15 次 30min,30 次 12h 以此类推 |
![]() | 9 crab 2019-01-09 17:30:57 +08:00 @hlwjia 这种除了麻烦客户再去经过电话客服解除还能什么作用?如果只是密码正确就能登陆为了资金安全能理解,问题是登陆过程还需要电子设备的保安编码,总不可能撞出密码还连这个两步验证的 6 位数字都撞出啊。 |
![]() | 10 xkeyideal 2019-01-09 17:35:07 +08:00 本质上是个反爬虫 |
11 CallMeReznov 2019-01-09 18:16:20 +08:00 |
12 mars0prince 2019-01-09 18:20:04 +08:00 参考微信和邮箱,换 IP 登录就要发手机验证码? |
13 fox0001 OP @mars0prince #12 网站没要求用户录入手机号… |
14 woyao 2019-01-09 18:24:24 +08:00 IP 信誉了解一下 :) |
![]() | 15 tanranran 2019-01-09 18:39:46 +08:00 加验证码,加 IP 拦截 |
![]() | 16 d5 2019-01-09 19:14:41 +08:00 加一层安全宝或者 CloudFlare,或者改验证码成极验、Luosimao 之类的 |
![]() | 17 d5 2019-01-09 19:18:35 +08:00 ![]() 老接口切换成蜜罐,收集泄露的用户信息; 新增一个登陆接口,用户页面改动到新接口; 加一层 CloudFlare 或者安全宝; 换验证码到极验、Luosimao。 (事实上你随便改动一下登陆接口的路径位置、阴险地在字段加一个空格,就能让他冷却好一会儿,因为他的脚本就失效了。而空格让粗心的人防不胜防。) |
![]() | 19 dapang1221 2019-01-09 19:27:50 +08:00 异常流量识别是个问题,如果对方是撞库的话,肯定会出现好多未注册用户尝试登陆的情况,这是一个点,可以从这标记异常的 ip。前端可以加浏览器指纹,例如分辨率什么的,对方不是会模拟访问别的页面吗,在别的页面把数据传上来,把指纹和 ip 对应上( github 上有个 fingerprint2.js 不错),如果一个指纹或 ip 多次尝试未注册用户的登录,那所有这个请求的登录成功请求,再强行验证或绑定一下手机号,这样也不会错杀 |
20 hilbertz 2019-01-09 19:32:37 +08:00 recaptcha |
![]() | 21 hanxiV2EX 2019-01-09 20:00:05 +08:00 via Android 异常流量监控,对频繁登录的做二次登录验证就好了,发邮件或者短信。 |
![]() | 22 hanxiV2EX 2019-01-09 20:03:06 +08:00 via Android 一个 ip 一天登录了两次以上就走二次验证也是可行的,正常客户端都会缓存 token 的,对正常用户没啥影响。 |
23 fox0001 OP @d5 #17 就是使用 Web 登录界面撞库的,不是调用登录 api。就是想问问除了增强验证码(什么极验、recaptcha 之类),还有什么好方法 |
![]() | 24 loading 2019-01-09 20:08:01 +08:00 via Android 一次输错就出验证码。 |
25 fox0001 OP @dapang1221 #19 不是模拟别的页面,是模拟人类访问网站。可以理解为对方就是个浏览器,但它是机器在操作。目前也只有根据访问情况,记录异常 IP 了。但如果对方的 IP 是通过类似拨号获得 IP 的话,容易误伤正常客户。网站没有记录客户手机号,强验证也只有发送 email 了 |
26 fox0001 OP @loading #24 目测对方破解了验证码,就是能够识别验证码图片上的文字。所以问,除了加强验证码,还能如何防止撞库 |
![]() | 28 loading 2019-01-09 20:19:24 +08:00 via Android 如果是有价值网站,除了用高强度验证码。可能还有就是短信登录或者微信扫码这种了。 毕竟对面有 ip 池了。什么浏览器指纹这些,针对性写代码也能过的。 |
![]() | 29 loading 2019-01-09 20:20:53 +08:00 via Android 一般撞库一个账户只会登录一次,针对用户名是没用了,你只能限制 ip,然后你对面有一堆 ip。 |
![]() | 30 rzti483NAJ66l669 2019-01-09 20:27:18 +08:00 via iPhone ![]() 虽然确实是技术性的讨论,大家无偿提供给你的建议你都不认同或者觉得不够好,那么你应当让公司花钱找更专业的人士去解决,而不是领一份工资死干。如果你就是花钱请回来解决问题的,那么回到第一个逗号后面重新看一次。 试都没试过就以 据说 /可能 之类这样的字眼去回,这样不好,当然我这样回复也不好。 |
31 hilbertz 2019-01-09 20:28:16 +08:00 @fox0001 recaptcha v3 还没破解,即使像 v2 那样的破解,也不太可能用于大规模撞库,接入 recaptcha 就相当于 google 帮你监控用户登录行为,你不太可能找到比这个更有效的防护手段 |
![]() | 32 tabris17 2019-01-09 20:30:05 +08:00 两步验证 |
![]() | 33 tabris17 2019-01-09 20:31:18 +08:00 首先需要白名单,也就是用户常用的 IP 地理位置和登陆设备信息(包括浏览器指纹),如果地理位置异常或设备异常,就升级成两步验证 |
34 alvin666 2019-01-09 20:32:22 +08:00 via Android 验证码呗,我见过最 bt 的码是 discuz 生成的,gif+随机中文字符(大小颜色形状不定还有干扰线)其他帧是随机数字和英文... 用户用起来想骂娘,但是至少挡住了 |
37 fox0001 OP ![]() @Humorce #30 在 V2 发帖前,跟同事讨论过了,也 Google 过相关的解决方案,也不尽满意。觉得做 Web 的,都会遇到这个问题,或者忽略了这个问题,大家讨论一下而已。那些天天问这问那的帖,是不是也要让他们去付费找答案?如果真需要达到一定程度的安全级别,登录就不是输个账户密码这么简单了。 对于一份工资死干的问题,我觉得,感兴趣的事情,就算是交给第三方去处理,为什么就不能自己去想想? 另外,这几天刚好看到 reCAPTCHA 被破解的新闻,但是没细看,所以用“据说”。个人觉得没毛病。 |
38 0ZXYDDu796nVCFxq 2019-01-09 22:36:37 +08:00 via Android 错 5 次封一个小时 IP,错 10 次封 24 小时,连续三天被封就永久封 |
![]() | 39 hanxiV2EX 2019-01-10 00:14:01 +08:00 via Android 二次验证只在异常情况下出现就得了,正常情况可能就第一次出现,后面就记住密码,采用 token,相当于首次换设备登录需要激活。qq 和微信都这样干的。对业务人员影响并不大吧。 |
![]() | 40 vsitebon 2019-01-10 02:29:53 +08:00 via iPhone 使用 reCaptcha 的话,可以先观望一下这个库: https://github.com/ecthros/uncaptcha2 |
42 BBge 2019-01-10 03:15:44 +08:00 via Android 简单的 直接换腾讯的语义验证码 暂时我没了解到有打码网站能接这个活 |
![]() | 43 KasuganoSoras 2019-01-10 03:22:17 +08:00 膜一下……我之前写了个登录网页,单 IP 密码错误一次就要等 10 秒后才能再试一次,再错一次再+1s ……有一次我看到数据库里有个人错了 100 多次,+100s |
![]() | 45 NicholasYX 2019-01-10 08:14:58 +08:00 via iPhone 加手机验证码? |
![]() | 46 dengtongcai 2019-01-10 08:28:44 +08:00 via iPhone 验证码比较直接… |
47 KgM4gLtF0shViDH3 2019-01-10 08:50:52 +08:00 via iPhone @fox0001 #13 没有手机号用邮箱验证吗呀 |
49 iBaoger 2019-01-10 09:08:00 +08:00 via Android 购买一个攻击 IP 标识库,先干掉一波,剩下的自己寻找标识 |
![]() | 50 Light3 2019-01-10 09:13:10 +08:00 兄弟 你先整个 难点的验证码 验证码不过 不给登陆 压力就慢慢小了 说实话 现在 ip 换一个 太容易了.. 之前被搞 一小时 换了 5 600 个 ip.. |
51 KgM4gLtF0shViDH3 2019-01-10 09:14:48 +08:00 @yksoft1ex #46 要是有邮箱密码的话都能充值密码了吧,还要撞库? |
52 jacketma 2019-01-10 10:13:01 +08:00 via Android 双向多重防护,没有必杀技,就是攻防。用户端每个 IP 试错次数,可试次数,频率,验证码都要上,服务端对每个账号也做访问次数做限制,每个账号一天内试错三次就禁止登录,第二天解锁或者重置密码可登录。 整体措施就是在正常用户体验和攻击难度之间取平衡点,没有一劳永逸的秘诀。 |
![]() | 53 lorryo 2019-01-10 10:28:04 +08:00 ![]() 做安全的来说两句。 首先,楼上评论里的"错误登陆次数过多过频直接禁止登录,或者 ban IP"都是扯淡。除了误伤正常用户,用处不大。 真这么做了,竞争对手要笑哭了,整天撞你。 防撞库现在主流还是验证码,既然你都知道你们验证码非常简单,那就上个难的呗。 至于 "但是再复杂的验证码也能破解",这就是废话。 攻击是要成本的,如果成本大于收益的话,谁还搞你? 建议就是 1.上个 NB 的验证码(业内很多解决方案) 2.监测环境,二次验证 3.收集风险账户信息,强制改密等(一些被脱过库的大站一般都这么做) 4. ...... |
![]() | 55 locoz 2019-01-10 10:48:35 +08:00 图片验证码过于简单了,首先这个必须升级一下。 然后就是可以用 rtbasia 这种识别 IP 真人概率的,一般 IP 量很大的那种情况,低质量 IP 占大部分,也就是真人概率比较低的那些,可以直接弹二次验证。 还有登陆 IP 跟注册、常用 IP 不在同一个地域的也直接弹二次验证。 |
![]() | 56 jinhan13789991 2019-01-10 11:40:50 +08:00 放弃密码登录,强制每次登录都输入短信验证码。 问题解决 |
58 l00t 2019-01-10 14:56:36 +08:00 要是我就让它撞呗。你用户的密码被人撞出来了,你自己密码没设好咯,关我什么事。要安全?我给你加个人脸识别,你愿意先存个脸在这里吗? |
59 arthasgxy 2019-01-10 16:00:41 +08:00 怎么防,我是不知道。。。 但怎么攻,我还真知道一点。。。 处于好奇干过一点小坏事。。。 so,其实个人感觉上面提到的最靠谱的就是加强验证码,提高攻击的难度了。。。 当然如果对方真要想搞你,额,不知道谷歌的那种验证方案有人破掉没有。但总归,多数验证破起来难度真不大,就算搞不定,无非整个打马接口花点小钱也搞定了。 个人推荐与其从这个角度去想,不如直接群发个邮件消息:年底盗号多发期,建议大家妥善保管密码,如有与其他网站密码相同、相似的,建议更改密码,巴拉巴拉 |
60 arthasgxy 2019-01-10 16:05:51 +08:00 哦哦,对, 如果检测到用户不是在经常登录的 ip 登录,就要用户验证下手机 or 邮箱。 然后验证没通过的话,就给对应手机 邮箱发个消息:有人在 xx ip 尝试登录, 但验证没通过,如果不是你自己干的,说明密码泄露了,赶紧改密码 |
![]() | 61 xencdn 2019-01-10 16:27:47 +08:00 |
![]() | 62 sparkssssssss 2019-01-10 16:31:01 +08:00 @crab 银行不都这样?icbc 貌似也这样 |
![]() | 63 edward8628 2020-05-19 11:34:46 +08:00 网络安全当然是层层防护啊,增加撞库成本。api 签名,蜜罐,异地登陆或不同设备登陆开启 2fa,手机或者邮箱收取验证码。其实还是收 6 位验证码最有效,但是用了验证码,被用户骂死了,被客服骂死了。 |