hayao650
V2EX  ›  问与答

验证码被恶意狂刷,有什么办法反击,求指教

  •  
  •   hayao650 · Oct 19, 2016 · 11564 views
    This topic created in 3668 days ago, the information mentioned may be changed or developed.

    网站的短信验证码被恶意刷,请网络安全方面的前辈,指教一下,有什么办法能反击? 攻击者的 ip 是动态的,估计是做了什么代理,手机号也是变动的 现在能做的就是限制访问频率 http 头部信息模拟的是 IE 浏览器,无法通过限制特定的头部信息来丢掉请求

    31 replies  •  2017-07-06 18:13:41 +08:00
    lianyue
    lianyue
    Oct 19, 2016
    1
    简单的 增加个 token
    一劳永逸的 增加个图片验证码 然后图片验证码对了才能。。。发送短信验证码
    UnitTest
    UnitTest
    Oct 19, 2016
    2
    我也遇到过这个问题, ip 动态很麻烦, token 麻烦,图片验证码最简单,但是体验不好。
    我把 ip 和手机存到 redis ,一个 ip 或者手机号发送 3 条短信之后就要验证码。
    crab
    crab
    Oct 19, 2016
    3
    同 1 楼,上验证码。至于手机号码不同,有可能短信接口被人调用写群发攻击器了。
    yankebupt
    yankebupt
    Oct 19, 2016 via Android
    4
    最简单的就是不用短信验证码。短信验证被刷很有可能是对方反感实名认证,或者手机号泄露过被骚扰烦了找个网站撒气,并不一定是特定针对你的网站,很可能只是看到没有大网站的法律背景同时又好欺负罢了。
    p.s.关于验证码有打码云什么的其实都是小事,你肯定还记得微信刷阅读量的那个吧,那可是每个都是真真正正手机的,都能真的验证码甚至装 app 都不在话下,你可以略微参考一下微信最后怎么处理的,虽然可比性不高
    UnitTest
    UnitTest
    Oct 19, 2016
    5
    @yankebupt 你想的简单了。有一帮人就是找各个网站的短信接口,然后打包做成一个短信轰炸机卖钱。

    人工破解验证码来刷短信成本高,没啥收益,一条短信也就几分钱,公司也无所谓,
    之前有漏洞,被人用程序一晚上刷了我二十多万条短信。就是短信轰炸机这种东西干的, ip 肯定是分布的,因为买软件的人天南海北,什么手机号都有,唯一特征就是比较密集。所以我用缓存限制了以后就没人大量刷了,小规模的我也看不出来,都混杂在正常的短信里了。
    wd
    wd
    Oct 20, 2016 via iPhone
    6
    学 12306 反过来 让用户给你发短信先
    lslqtz
    lslqtz
    Oct 20, 2016
    7
    反击的话,你可以尝试给他在接口中返回一个超大的内容,几十 M 或者几 G 这样子,他的客户端估计很快就爆掉了
    macroideal
    macroideal
    Oct 20, 2016 via iPhone
    8
    @lslqtz 反回大内容反而增加了服务器的负担
    jackyspy
    jackyspy
    Oct 20, 2016
    9
    提高验证码获取门槛,比如使用难度较高的验证码,杜绝机器识别。
    限制同一个 IP 和同一手机号访问频次。
    为了保护服务器,可以考虑根据平时的访问量来限制整站短信接口调用频次,副作用就是可能影响正常用户。
    lslqtz
    lslqtz
    Oct 20, 2016 via iPhone
    10
    @macroideal 哈哈 不差钱就用
    Phant0m
    Phant0m
    Oct 20, 2016 via iPhone
    11
    谁让你用手机号注册,邮箱不好么?现在的网站,动不动就要手机注册
    Cannikin
    Cannikin
    Oct 20, 2016 via Android
    12
    不知你是否知道“短信轰炸机”,现在的情况也是有可能被恶意利用了。收集网上需要短信验证的网站,然后只需要填入手机号,该手机号使用者就要抓狂了。
    timothyye
    timothyye
    Oct 20, 2016 via Android
    13
    加图片验证码
    Infernalzero
    Infernalzero
    Oct 20, 2016
    14
    最有效的方法就是加图片验证码增加对方难度
    如果对方伪装得比较差的话其实通过判断各种 header 信息在 nginx 处拦截即可,记得匹配到了直接返回 200
    tomczhen
    tomczhen
    Oct 20, 2016
    15
    1. 检查代码逻辑,看看是不是有什么漏洞——反正我公司的项目就遇到过一次。
    2. 增加滑动验证码,貌似有个极验是做这个,其他家就不清楚了。
    3. Web API 的话,增加签名校验,防止伪造请求。另外,还得考虑重放攻击的处理。
    4. 后台判断出是攻击者的话,别直接报错、屏蔽之类的,而是返回假数据,但是不实际处理业务。(比如返回正常状态信息,但是实际不发短信。)
    PEP4JASON
    PEP4JASON
    Oct 20, 2016
    16
    网站短信接口暴露? 还是脚本操作
    gamexg
    gamexg
    Oct 20, 2016
    17
    @macroideal 给他重定向到 ms iso 。
    hayao650
    hayao650
    OP
    Oct 20, 2016
    18
    1.获取验证码是在注册环节,现在已经控制 ip 和电话号码了,也加上图形验证码,短信发送频率已经降下来了
    2.我也不知道为什么非要用手机号+短信验证码这种东西,感觉对公司业务并没有太多帮助
    @PEP4JASON 短信接口在网站上很容易看到, F12 一下,就都看到了,这东西还有办法隐藏么?不懂,求解。
    @gamexg 这样做是不是有点儿不太好。。。
    @lslqtz 我也想这么做,但是考虑到公司买的可怜的服务器和和短信攻击的频率,就放弃了。。。
    PEP4JASON
    PEP4JASON
    Oct 20, 2016
    19
    隐藏参数或加密参数
    PEP4JASON
    PEP4JASON
    Oct 20, 2016
    20
    然后对同一号码请求多次 验证码 的场景做一下处理
    jswh
    jswh
    Oct 20, 2016
    21
    反过来发短信
    046569
    046569
    Oct 20, 2016
    22
    经常遇到这种问题,大致思路楼上都说过了.
    除了验证码以外,我更趋向于在前端增加 WAF ,简单有效.能识别出绝大部分攻击者.
    关键在于认真分析日志,搞清楚对方的攻击手段和特点.比如对方总共使用多少代理?平均每个代理请求几次?对方攻击的时间段趋向于白天还是夜晚?如果这些问题你都了然于胸,上 WAF 吧.
    lianxiaoyi
    lianxiaoyi
    Oct 20, 2016
    23
    最简单的。。。。。别做限制 。。。。。当你监测到某个 ip 发送 10 条信息之后。。。。你还是返回正常 但是不发送短信了。。。。造成一种视觉错误。。。。
    justseemore
    justseemore
    Oct 20, 2016
    24
    @lianxiaoyi 。。我之前也是这么干的- -。
    hayao650
    hayao650
    OP
    Oct 20, 2016
    25
    @lianxiaoyi 他的 ip 数量太多了,我观察了两天,第一天有 200 多,第二天将近 400 ,一直在更新
    lslqtz
    lslqtz
    Oct 21, 2016
    26
    @hayao650 用 WAF 吧。
    可以给他 301 跳转到百度(
    lslqtz
    lslqtz
    Oct 21, 2016
    27
    对短信接口加 Token UA 验证
    hayao650
    hayao650
    OP
    Oct 21, 2016
    28
    @lslqtz 是登陆注册接口,没办法加 token 吧
    lslqtz
    lslqtz
    Oct 21, 2016 via iPhone
    29
    @hayao650 在需要用的页面给用户生成 token 加进去(用 IP 、时间等防止多 IP 刷)之类的。。非得说防刷,也可以判断 IP 的来源地区之类的,网上有几个我记得可以查是不是代理。
    lianxiaoyi
    lianxiaoyi
    Oct 21, 2016
    30
    @zpfhbyx 这种办法其实很好。。。。。我就遇到过一个 sb 在那提交了一个多小时。。。。。
    ssyz1988
    ssyz1988
    Jul 6, 2017
    31
    @lianxiaoyi 但是楼主碰到的并不是一个固定的 ip
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3062 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 91ms · UTC 04:41 · PVG 12:41 · LAX 20:41 · JFK 23:41
    ♥ Do have faith in what you're doing.