V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Markxu0
V2EX  ›  程序员

短信防刷策略?

  •  
  •   Markxu0 · 2021-01-17 14:35:34 +08:00 · 4251 次点击
    这是一个创建于 1397 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司前些时间短信被恶意刷了,然后让我想个短信防刷的策略。

    目前我想到的方案主要如下:

    • 1:限制同设备,同 IP,同手机号的发送次数和频率。
    • 2:请求 IP 和手机号国家码一致性校验。请求 IP 不在手机号所属国家 /区域,则前置人机验证(图片验证码)
    • 3:高风险地区 /ip,前置人机验证

    主要业务在 C 端,最好能够减少图片验证码出现的次数,提升用户体验。 上面的方案就算是抛砖引玉了,想请教一下大家有没有其他更好的方案。

    22 条回复    2021-01-18 23:42:23 +08:00
    stiekel
        1
    stiekel  
       2021-01-17 15:53:10 +08:00
    再加个人机滑动验证。
    delectate
        2
    delectate  
       2021-01-17 16:13:36 +08:00
    其实还可以加个验证,比如某时刻( 10:00~11:00 ),服务端限制每个 ip 只能发送 x 条短信,某个手机号、id 只能发送 x 条短信(阈值设定的高一点,比正常值高 5%),超过的请求,符合严苛验证条件的通过,否则一律阻拦。阻拦的 ip 超过某阈值自动封禁;可以有效应对攻击、滥用。
    xcstream
        3
    xcstream  
       2021-01-17 17:55:42 +08:00
    滑动验证码
    firstfan
        4
    firstfan  
       2021-01-17 17:57:28 +08:00
    直接集成第三方的人机验证,你说的策略人家都有,就是 IP,设备检查,然后检查后觉得有风险再出滑动验证之类的
    crab
        5
    crab  
       2021-01-17 17:58:38 +08:00
    同号码限制次数,IP,验证码。
    312ybj
        6
    312ybj  
       2021-01-17 18:11:00 +08:00 via Android
    短信服务器应该有防轰炸策略。本地系统也可以维护一套防轰炸策略
    opengps
        7
    opengps  
       2021-01-17 18:33:23 +08:00 via Android   ❤️ 1
    少了一个关键止损措施,避免大量伪造突破限制的方案,那就是每小时短信发送量。
    这样的好处是始终有个约束,即使黑客选了你应用漏洞用于攻击或者推广,也效果收到制约,负面效果是,每次有突发大型活动要注意提前调高约束范围
    leaves7i
        8
    leaves7i  
       2021-01-17 19:54:03 +08:00
    学习 tg,上次我登录前两次等了几分钟都没收到验证码,我再让它重发它就直接报代码了,让我一天后再重试……
    wangbenjun5
        9
    wangbenjun5  
       2021-01-17 19:57:17 +08:00
    最有效的应该是验证码了,但是验证码加多了还影响用户体验,最简单的是对接一个第三方验证码服务,有些是基于大数据风控规则判断用户的风险级别,适时的弹出验证码,挺好,就是费钱,自己弄还很麻烦。
    dcsite
        10
    dcsite  
       2021-01-17 22:25:03 +08:00
    @opengps 似乎有的平台可以设定这个阀值,可以设定 10 分钟、半小时、一小时、一天总发送量
    igeeky
        11
    igeeky  
       2021-01-17 22:32:11 +08:00
    1. 人机验证, 简单,粗暴,有效.
    2. 接口添加签名. 只有破解了签名算法, 才能发出合法的请求及签名数据. 对于移动端 Java 的 APP 应用 /WEB JS 应用, 破解难度倒也不是很高, 但是比没有签名的安全性还是要高一个数量级.
    3. 基于 IP,客户端标识的安全控制. 基本没什么用, 花几块钱一个小时的 IP 代理库你就跪了.
    x86
        12
    x86  
       2021-01-17 22:43:29 +08:00 via iPhone
    稍微好点的平台短信网关都有这个吧
    Lemeng
        13
    Lemeng  
       2021-01-17 22:46:36 +08:00
    加个验证码,是最方便有效的
    igeeky
        14
    igeeky  
       2021-01-17 22:50:31 +08:00
    @x86
    @312ybj 短信平台一般只有针对某一个手机号的频率限制.
    恶意刷短信的人, 不会使用同一个号码, 也不会使用同一个 IP,或者同一个客户端标识.
    另外短信平台,巴不得有人天天刷短信了, 这对他们是有好处的.
    tutugreen
        15
    tutugreen  
       2021-01-17 22:50:50 +08:00
    题外话,实在拦不住,比如限制一段时间量,超出了让用户上行发送短信(降低体验
    或者接入运营商一键认证那种(需要手机+3/4/5G 网络
    docx
        16
    docx  
       2021-01-18 04:06:17 +08:00 via Android
    比如某宝的短信,是账号一天有下发总量,超过之后变成语音,或者不再允许获取。
    以前测试的,现在可能改了。
    linksNoFound
        17
    linksNoFound  
       2021-01-18 08:51:19 +08:00
    某 IP 验证码超过 3 次未验证就拉黑
    ogli
        18
    ogli  
       2021-01-18 11:09:13 +08:00
    应该加强验证码参数校验加密,和 app 反抓包,破解等等。人机验证这样的在多少次后刷出,其实不能完全应付,别人都是打一枪换一地。很被动。
    zpfhbyx
        19
    zpfhbyx  
       2021-01-18 11:46:19 +08:00
    api 动态加密啊 加签名 然后解密失败限制,一般增加难度,都不会再搞你
    zpfhbyx
        20
    zpfhbyx  
       2021-01-18 11:51:35 +08:00
    还有一个前置校验,前一个 api 的请求和当前 api 的请求来源一致,包括但是不限于 ip ua 其他的一些固定值
    julyclyde
        21
    julyclyde  
       2021-01-18 12:40:08 +08:00
    让客户给你发
    nodesolar
        22
    nodesolar  
       2021-01-18 23:42:23 +08:00
    之前每个月遭刷不少的量,成本之高,开启验证码机制+app 默认使用运营商一键登录, 量一下下来了.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1284 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:06 · PVG 02:06 · LAX 10:06 · JFK 13:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.