短信登录接口被人刷怎么办呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xi_lin
V2EX    问与答

短信登录接口被人刷怎么办呢?

  •  
  •   xi_lin 2015-10-15 14:46:57 +08:00 6092 次点击
    这是一个创建于 3720 天前的主题,其中的信息可能已经有所发展或是发生改变。

    已经做了针对 IP 和手机号的 rate limit ,但是架不住多 IP 多手机号的刷,除了进一步的限制频率外有什么好办法吗?

    其实我还很奇怪为什么没有用户来投诉收到垃圾短信。。

    23 条回复    2015-10-18 21:09:25 +08:00
    avichen
        1
    avichen  
       2015-10-15 15:13:15 +08:00
    1.昨天不是有过一样的问题了嘛?见: http://www.v2ex.com/t/227899#reply25
    2.估计人家手机都被轰炸得开不了机了
    kendetrics
        2
    kendetrics  
       2015-10-15 15:25:58 +08:00
    图形验证码

    要是算法能力够变态可以前端加密,像某宝一样用 JS 加密鼠标轨迹一起发到后端来判断是不是爬虫,除非攻击者也耐着性子啃完你的加密代码然后在爬虫里模拟,这会极大增加他的攻击成本,而且还不影响用户体验
    hicdn
        3
    hicdn  
       2015-10-15 15:26:03 +08:00
    淘宝短信验证码代收
    paradoxs
        4
    paradoxs  
       2015-10-15 15:34:57 +08:00
    只能加密。 让别人看不到借口
    ihacku
        5
    ihacku  
       2015-10-15 17:17:06 +08:00
    你看看那些手机号是不是都打不通?提示号码已过期之类?
    gbooks
        6
    gbooks  
       2015-10-15 21:39:34 +08:00
    加密在前端都能看到!加个急速验证类型的滑动验证可以难倒一大片了,然后加个 ip 限制
    xi_lin
        7
    xi_lin  
    OP
      &bsp;2015-10-15 23:20:14 +08:00
    @avichen @kendetrics @gbooks app 的老版本在用和网页一样的接口,不好加验证码。。
    xi_lin
        8
    xi_lin  
    OP
       2015-10-15 23:20:38 +08:00
    @kendetrics 移动端做不了这种加密吧?
    xi_lin
        9
    xi_lin  
    OP
       2015-10-15 23:21:12 +08:00
    @paradoxs 总有前端暴露在外,模拟一下表单提交的话接口加密没什么意义吧?
    xi_lin
        10
    xi_lin  
    OP
       2015-10-15 23:21:30 +08:00
    @ihacku 这倒没有试,不过看了归属地是天南海北
    kendetrics
        11
    kendetrics  
       2015-10-15 23:30:24 +08:00
    @xi_lin 你可以写自己的 JS 加密规则呗, JS 移动基本也都支持的啊。。
    前端加密暴露是肯定会暴露的,但只要算法够复杂,就可以让他写爬虫的成本尽可能的高。几页长没注释的加密函数算出来的 token ,要用他写爬虫的语言去重新实现,这个能要命的

    APP 你可以加个&type=app 让接口和网页分开兼容,然后在程序内算个 token 附上,在服务端验证,算法不泄密的话爬虫就没法模拟请求。然后网页那边简单的加个验证码就好
    crab
        12
    crab  
       2015-10-15 23:35:21 +08:00
    加验证码吧。

    另外你说已经做了针对 IP 和手机号的 rate limit

    已经做了这些了,那就不算被刷了吧。多数网站的手机接口不也都是这样吗。有的连 IP 都没限制只限制手机号码 1 天或者 1 小时内最多几次。
    xi_lin
        13
    xi_lin  
    OP
       2015-10-15 23:43:54 +08:00
    @kendetrics 新版本 app 可以用这个加密思路做,但是老版本的 app 也得保证能用,这样的话在覆盖率足够高之前没办法启用吧?
    xi_lin
        14
    xi_lin  
    OP
       2015-10-15 23:44:45 +08:00
    @crab 我原来也觉得 rate limit 够用。可是看了 log 发现它根本是在随机生成手机号在刷接口。。
    randyzhao
        15
    randyzhao  
       2015-10-15 23:52:55 +08:00
    IP 限制怎么做的, 我们是短时间频繁调用发短信接口的话就直接 ban 掉 24 小时(不管你手机号是啥

    2 天就消停了.
    kendetrics
        16
    kendetrics  
       2015-10-16 00:01:13 +08:00
    @xi_lin 老 APP 用 HTTP 头区分一下吧。。你查一下攻击者发送的请求,如果他模拟的网页操作,很可能会附加上一些浏览器特有的头便于伪装,你可以对于有多余项(比如 UA 之类的)的直接不响应,或者你客户端有什么独特的特征能区分出来更好。。新客户端和网页端全部加密,把老版本留出来作为类似白名单的的存在。

    他不一定能想到在你网页开始加密之后,还能抓老手机端的包来模拟,就算下载了客户端,如果下的是新版的会发现还是加密了的。然后你等旧版用户量少到一个程度,就强制他们迁移新版。

    当然最坏的打算是这货真又去抓了旧版客户端的包,然后你又不能承受这样下去的损失,那就只能强制旧版用户迁移了。

    。。你要连在登陆失败的时候显示一个“请升级最新版”的接口都没留,那就是真的 GG 了
    avichen
        17
    avichen  
       2015-10-16 11:22:56 +08:00
    @xi_lin 加验证码和哪个应用在用接口没关系的呀,你在调用接口的 UI 之前加一步先输入页面验证码,通过后再调用短信接口发送短信
    xi_lin
        18
    xi_lin  
    OP
       2015-10-16 14:21:50 +08:00
    @randyzhao IP 限制放的比较宽,现在的限制是手机号和 IP 作为 KEY 同时到达一定次数后才 ban 掉 24 小时。 IP 如果限的太小的话像公司里所有人用同一个出口 IP 不是很快就到达上限了么?
    xi_lin
        19
    xi_lin  
    OP
       2015-10-16 14:22:47 +08:00
    @kendetrics 我感觉抓旧版的包还是很可能发生的。。不过加密是个好思路,后续打算试试。
    有预留一个弹出信息接口~
    xi_lin
        20
    xi_lin  
    OP
       2015-10-16 14:23:09 +08:00
    @avichen 存量的老 app 没法加呀,发出去的版本波出去的水
    randyzhao
        21
    randyzhao  
       2015-10-16 22:40:45 +08:00
    @xi_lin IP 如果限的太小的话像公司里所有人用同一个出口 IP 不是很快就到达上限了么

    我的情况是注册接口的验证码

    所以 rate 稍微放宽些, 就不会有影响.

    攻击者基本上都是疯狂的进攻, 从来不讲策略的.
    xi_lin
        22
    xi_lin  
    OP
       2015-10-17 18:56:59 +08:00
    @randyzhao 嗯。我觉得攻击者好蛋疼,损人不利已
    randyzhao
        23
    randyzhao  
       2015-10-18 21:09:25 +08:00
    @xi_lin +1 到底图个啥...
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1047 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 17:40 PVG 01:40 LAX 09:40 JFK 12: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