短信防刷策略? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回技术问题时复制粘贴 AI 生成的内容
Markxu0
V2EX    程序员

短信防刷策略?

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

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

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

    • 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 反抓包,破解等等。人机验证这样的在多少次后刷出,其实不能完全应付,别人都是打一枪换一地。很被动。
    justseemore
        19
    justseemore  
       2021-01-18 11:46:19 +08:00
    api 动态加密啊 加签名 然后解密失败限制,一般增加难度,都不会再搞你
    justseemore
        20
    justseemore  
       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     Solana     5731 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 02:29 PVG 10:29 LAX 18:29 JFK 21:29
    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