V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
luo362722353
V2EX  ›  问与答

关于短信 api 接口被刷有什么防御办法吗?

  •  
  •   luo362722353 · 2017-09-27 02:11:07 +08:00 · 6117 次点击
    这是一个创建于 2374 天前的主题,其中的信息可能已经有所发展或是发生改变。

    代朋友咨询一下,当 IP 数和手机号数相当的前提下,然后通过网站的密码找回接口进行对用户的手机下发验证,导致骚扰到了用户。 就是比如有 1000 个手机号,然后 10000 个 IP 地址,每个 IP 和手机号就访问一次网站的找回密码功能,而且不带重复手机号请求和 IP 请求,等于 IP 和手机号都只请求一次。(类似短信的分布式攻击)

    PS:目前可以想到的是 IP 访问请求归属和手机号归属省份比对数据才触发验证码下发

    但是如果正常的用户漫游到其他身份用什么方式可以正常下发验证码?有什么可行性的办法?(让用户主动上行指令短信进行验证?)

    18 条回复    2017-09-27 10:54:11 +08:00
    oh
        1
    oh  
       2017-09-27 02:30:13 +08:00 via iPhone
    一般来说完整手机号码应该是找回密码的人输入的吧,相当于一个检验,如果手机号码不在数据库中也就不会发送短信了;

    同一 IP 调用短信接口太多次就屏蔽 24 小时;

    增加复杂的验证码 提高攻击者成本;

    当天整个网站找回密码次数太多之后,可以改成由手机号码持有人发送指定内容短信到端口;
    luo362722353
        2
    luo362722353  
    OP
       2017-09-27 02:31:47 +08:00
    @oh 关键在于对方有网站的部分用户数据手机号..
    mozutaba
        3
    mozutaba  
       2017-09-27 02:33:56 +08:00   ❤️ 2
    10 分钟超过 3 次就下发语音验证。
    oh
        4
    oh  
       2017-09-27 02:34:24 +08:00 via iPhone
    如果对方是报复,临时关闭短信找回密码功能,由人工客服介入处理。

    如果号码都是对方注册的,只是为了消耗你们的短信费,那号码全部拉黑。

    其它的参考上面后两条。
    oh
        5
    oh  
       2017-09-27 02:35:19 +08:00 via iPhone   ❤️ 2
    @mozutaba 下发语音岂不是更骚扰用户,本来收个短信就算了,现在变成电话一直响了。
    zwgmlr3
        6
    zwgmlr3  
       2017-09-27 07:05:53 +08:00 via Android
    关注微信找回密码……
    mozutaba
        7
    mozutaba  
       2017-09-27 07:42:36 +08:00
    @oh 发了语音就不再提醒了。
    rogwan
        8
    rogwan  
       2017-09-27 07:57:23 +08:00 via Android   ❤️ 1
    对方已经是在模拟完全真实的用户行为了,没法防的。

    方法:增加发短信的随机验证码吧。
    DuckJK
        9
    DuckJK  
       2017-09-27 09:07:25 +08:00
    加个复杂的验证码?
    xmh51
        10
    xmh51  
       2017-09-27 09:37:45 +08:00
    @luo362722353 这个可以解决哎,学腾讯,由客户发短信。
    odirus
        11
    odirus  
       2017-09-27 09:43:17 +08:00
    哥们儿,你说的是这个吧?
    odirus
        12
    odirus  
       2017-09-27 09:48:27 +08:00
    @odirus

    补充:

    下载地址: https://app.yuanzidan.wang/ (查看网页源码即可找到下载地址)

    授权码激活地址: http://www.yuanzidan.wang:99/

    ---------------------------------------------------------------------------------------------------

    估计你是被这波人盯上了,这个 APP 就是到处分析别人的短信接口,然后放在自己的 APP 里面,卖授权码给别人,每个人下载之后都可以随便发短信,这就是所谓的 “分布式轰炸”

    建议大家调戏一下这个网站,服务器在国内。
    odirus
        13
    odirus  
       2017-09-27 09:52:33 +08:00
    @odirus

    再次补充,网站注册信息查询

    https://cloud.baidu.com/product/bcd/whois.html?domain=yuanzidan.wang&track=cp:aladdin%7Ckw:23398

    这个人留了自己的电话号码的,要不前去骚扰一下?

    做这种事情,也不知道卖一个隐私保护,哎
    mooncakejs
        14
    mooncakejs  
       2017-09-27 09:53:09 +08:00
    简单点就上验证码
    irory
        15
    irory  
       2017-09-27 10:00:26 +08:00
    图片验证码走起呗 ~
    nullcoder
        16
    nullcoder  
       2017-09-27 10:15:01 +08:00
    嗯,看到过同一用户要求验证码次数过多的时候,要填图片验证码,应该是一个合适的实践。

    因为要从正常用户的角度考虑,不能只从技术层面,还是要考虑产品设计。 #1 #4 #5 楼说的不太认同
    eb22fbb4
        17
    eb22fbb4  
       2017-09-27 10:22:43 +08:00 via Android
    文字短信的话防御无非就手机号,客户端相对唯一标识( IP ),验证码这些。如果人家模拟真实用户行为,没有什么太好的办法,但这个验证码是可以判断机器人的,比如 google 的 reCaptcha
    cnTangLang
        18
    cnTangLang  
       2017-09-27 10:54:11 +08:00
    申请同一个手机号的验证码,同一天超过 2 次,从第三次开始需要输入验证码。验证码做好点就行了。这是最基本、最快捷的方法。当然,如果你的用户量大,如腾讯,就可以要求用户发短信到你的号码的方式。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2576 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:55 · PVG 23:55 · LAX 08:55 · JFK 11:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.