验证码被恶意狂刷,有什么办法反击,求指教 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hayao650
V2EX    问与答

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

  •  
  •   hayao650 2016-10-19 20:11:02 +08:00 10679 次点击
    这是一个创建于 3309 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    人工破解验证码来刷短信成本高,没啥收益,一条短信也就几分钱,公司也无所谓,
    之前有漏洞,被人用程序一晚上刷了我二十多万条短信。就是短信轰炸机这种东西干的, ip 肯定是分布的,因为买软件的人天南海北,什么手机号都有,唯一特征就是比较密集。所以我用缓存限制了以后就没人大量刷了,小规模的我也看不出来,都混杂在正常的短信里了。
    wd
        6
    wd  
       2016-10-20 00:04:54 +08:00 via iPhone
    学 12306 反过来 让用户给你发短信先
    lslqtz
        7
    lslqtz  
       2016-10-20 01:51:13 +08:00
    反击的话,你可以尝试给他在接口中返回一个超大的内容,几十 M 或者几 G 这样子,他的客户端估计很快就爆掉了
    macroideal
        8
    macroideal  
       2016-10-20 07:26:28 +08:00 via iPhone
    @lslqtz 反回大内容反而增加了服务器的负担
    jackyspy
        9
    jackyspy  
       2016-10-20 08:07:29 +08:00
    提高验证码获取门槛,比如使用难度较高的验证码,杜绝机器识别。
    限制同一个 IP 和同一手机号访问频次。
    为了保护服务器,可以考虑根据平时的访问量来限制整站短信接口调用频次,副作用就是可能影响正常用户。
    lslqtz
        10
    lslqtz  
       2016-10-20 08:22:58 +08:00 via iPhone
    @macroideal 哈哈 不差钱就用
    Phant0m
        11
    Phant0m  
       2016-10-20 08:27:31 +08:00 via iPhone
    谁让你用手机号注册,邮箱不好么?现在的网站,动不动就要手机注册
    Cannikin
        12
    Cannikin  
       2016-10-20 08:41:30 +08:00 via Android
    不知你是否知道“短信轰炸机”,现在的情况也是有可能被恶意利用了。收集网上需要短信验证的网站,然后只需要填入手机号,该手机号使用者就要抓狂了。
    timothyye
        13
    timothyye  
       2016-10-20 09:01:02 +08:00 via Android
    加图片验证码
    Infernalzero
        14
    Infernalzero  
       2016-10-20 09:10:52 +08:00
    最有效的方法就是加图片验证码增加对方难度
    如果对方伪装得比较差的话其实通过判断各种 header 信息在 nginx 处拦截即可,记得匹配到了直接返回 200
    tomczhen
        15
    tomczhen  
       2016-10-20 09:33:31 +08:00
    1. 检查代码逻辑,看看是不是有什么漏洞反正我公司的项目就遇到过一次。
    2. 增加滑动验证码,貌似有个极验是做这个,其他家就不清楚了。
    3. Web API 的话,增加签名校验,防止伪造请求。另外,还得考虑重放攻击的处理。
    4. 后台判断出是攻击者的话,别直接报错、屏蔽之类的,而是返回假数据,但是不实际处理业务。(比如返回正常状态信息,但是实际不发短信。)
    PEP4JASON
        16
    PEP4JASON  
       2016-10-20 09:43:02 +08:00
    网站短信接口暴露? 还是脚本操作
    gamexg
        17
    gamexg  
       2016-10-20 09:55:25 +08:00
    @macroideal 给他重定向到 ms iso 。
    hayao650
        18
    hayao650  
    OP
       2016-10-20 14:16:39 +08:00
    1.获取验证码是在注册环节,现在已经控制 ip 和电话号码了,也加上图形验证码,短信发送频率已经降下来了
    2.我也不知道为什么非要用手机号+短信验证码这种东西,感觉对公司业务并没有太多帮助
    @PEP4JASON 短信接口在网站上很容易看到, F12 一下,就都看到了,这东西还有办法隐藏么?不懂,求解。
    @gamexg 这样做是不是有点儿不太好。。。
    @lslqtz 我也想这么做,但是考虑到公司买的可怜的服务器和和短信攻击的频率,就放弃了。。。
    PEP4JASON
        19
    PEP4JASON  
       2016-10-20 15:31:27 +08:00
    隐藏参数或加密参数
    PEP4JASON
        20
    PEP4JASON  
       2016-10-20 15:34:30 +08:00
    然后对同一号码请求多次 验证码 的场景做一下处理
    jswh
        21
    jswh  
       2016-10-20 16:06:05 +08:00
    反过来发短信
    046569
        22
    046569  
       2016-10-20 16:21:44 +08:00
    经常遇到这种问题,大致思路楼上都说过了.
    除了验证码以外,我更趋向于在前端增加 WAF ,简单有效.能识别出绝大部分攻击者.
    关键在于认真分析日志,搞清楚对方的攻击手段和特点.比如对方总共使用多少代理?平均每个代理请求几次?对方攻击的时间段趋向于白天还是夜晚?如果这些问题你都了然于胸,上 WAF 吧.
    lianxiaoyi
        23
    lianxiaoyi  
       2016-10-20 16:29:04 +08:00
    最简单的。。。。。别做限制 。。。。。当你监测到某个 ip 发送 10 条信息之后。。。。你还是返回正常 但是不发送短信了。。。。造成一种视觉错误。。。。
    justseemore
        24
    justseemore  
       2016-10-20 18:00:47 +08:00
    @lianxiaoyi 。。我之前也是这么干的- -。
    hayao650
        25
    hayao650  
    OP
       2016-10-20 18:43:20 +08:00
    @lianxiaoyi 他的 ip 数量太多了,我观察了两天,第一天有 200 多,第二天将近 400 ,一直在更新
    lslqtz
        26
    lslqtz  
       2016-10-21 01:03:29 +08:00
    @hayao650 用 WAF 吧。
    可以给他 301 跳转到百度(
    lslqtz
        27
    lslqtz  
       2016-10-21 01:03:55 +08:00
    对短信接口加 Token UA 验证
    hayao650
        28
    hayao650  
    OP
       2016-10-21 09:12:39 +08:00
    @lslqtz 是登陆注册接口,没办法加 token 吧
    lslqtz
        29
    lslqtz  
       2016-10-21 10:13:40 +08:00 via iPhone
    @hayao650 在需要用的页面给用户生成 token 加进去(用 IP 、时间等防止多 IP 刷)之类的。。非得说防刷,也可以判断 IP 的来源地区之类的,网上有几个我记得可以查是不是代理。
    lianxiaoyi
        30
    lianxiaoyi  
       2016-10-21 12:05:29 +08:00
    @zpfhbyx 这种办法其实很好。。。。。我就遇到过一个 sb 在那提交了一个多小时。。。。。
    ssyz1988
        31
    ssyz1988  
       2017-07-06 18:13:41 +08:00
    @lianxiaoyi 但是楼主碰到的并不是一个固定的 ip
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     923 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 21:40 PVG 05:40 LAX 13:40 JFK 16:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86