运营活动遭遇刷奖,无奈清空奖池,求大神赐教! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
king14
V2EX    问与答

运营活动遭遇刷奖,无奈清空奖池,求大神赐教!

  •  
  •   king14 2016-07-16 16:03:38 +08:00 3742 次点击
    这是一个创建于 3387 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近公司推了一个基于微信浏览器的运营活动,大体内容就是用户可以通过分享为好友加分,所得分数用于抽奖游戏,奖品包含现金红包及手机等实物。 结果在活动推出的头几天就遭遇大范围的刷奖,后台收到模拟请求将近 5000 次 /秒,请求中 UA 不变, IP 及用户 id 动态变化( id 均为有效 id )。 请问除了通过访问频次将 id 加入黑名单之外(这个可能误伤),还有什么好的方式来预防类似的刷奖行为吗?求各位大神赐教!

    24 条回复    2016-07-18 09:17:05 +08:00
    kungfuchicken
        1
    kungfuchicken  
       2016-07-16 16:15:18 +08:00
    1. 每个分享连接都计算一个独立 hash 入库(每个用户分享 N 次,这个用户就有 N 个不重复的 hash 入库),把 hash 作为分享 URL 一个参数,加分判断时检查 hash 存在且对应传入用户 id ,且才能加分。
    2. 上 IP 频率黑名单,发现有问题的请求不要给错误信息,前台给正常信息但是不加分(以免让刷分者发现异常),然后在后台记录流水,即使有误伤正常用户,通过流水也能正常用户补分。
    046569
        2
    046569  
       2016-07-16 16:23:50 +08:00
    可以在 WAF 中部署规则,识别攻击者和访客行为的不同.比如攻击者访问流程和普通访客不同,或其它.

    king14
        3
    king14  
    OP
       2016-07-16 16:29:21 +08:00
    @046569 有想过通过用户行为来区分,比如抽奖请求和领奖请求之间必须经过查奖这一过程,不过如果攻击者模拟的时候同样按照这个顺序发送请求会怎么办呢
    king14
        4
    king14  
    OP
       2016-07-16 16:31:42 +08:00
    @kungfuchicken hash 值放在 url 里的话攻击者也可以拿到,这样的请求到后台也会是有效的吧
    notgod
        5
    notgod  
       2016-07-16 16:35:47 +08:00
    真是的 直接内定了
    奖品都给我吧 省得麻烦
    king14
        6
    king14  
    OP
       2016-07-16 16:39:38 +08:00
    @notgod 这想法不错
    magicsilence
        7
    magicsilence  
       2016-07-16 16:43:03 +08:00
    上滑动验证
    UnisandK
        8
    UnisandK  
       2016-07-16 16:43:07 +08:00
    /t/272482 可以跟这哥们儿联系一下,抽奖流程增加手机验证
    allenhu
        9
    allenhu  
       2016-07-16 16:45:07 +08:00 via Android
    只能说明你流程有漏洞
    MrMario
        10
    MrMario  
       2016-07-16 16:46:13 +08:00 via iPhone
    找阿里的风控,加个滑动验证
    king14
        11
    king14  
    OP
       2016-07-16 16:49:29 +08:00
    @magicsilence
    @UnisandK
    这个可以有
    king14
        12
    king14  
    OP
       2016-07-16 16:50:46 +08:00
    @allenhu 是有,这不是在想怎么改进么
    frozenshadow
        13
    frozenshadow  
       2016-07-16 16:58:32 +08:00 via Android
    请看我之前的一个帖子。。。。手机不方便翻
    046569
        14
    046569  
       2016-07-16 16:59:36 +08:00
    @king14
    比如抽奖动画 4 秒,他查询的时候是否低于这个时间,低于则判定有问题.
    不要设定单一规则判断,而是多条规则组合出一个阈值.比如此人输入查询页面缺乏 referer ,又频率过快,超过正常人水平,即可判定是外挂.
    shiny
        15
    shiny  
       2016-07-16 17:11:48 +08:00
    用微信的 oAuth 验证唯一用户,刷奖成本就上去了
    won
        16
    won  
       2016-07-16 20:08:09 +08:00
    自己公司开几台服务器用同样方式对刷,稀释奖池
    300
        17
    300  
       2016-07-16 21:12:51 +08:00
    还真能抽到 il||li (OдO`) il||li
    我以为抽奖都是骗人的。。。。
    xman123
        18
    xman123  
       2016-07-16 23:46:08 +08:00
    某东上的一个 API 接口: http://wxlink.jd.com/market/api/10570
    dream7758521
        19
    dream7758521  
       2016-07-17 08:06:52 +08:00 via Android
    后台直接调数据库,指定用户中奖
    king14
        20
    king14  
    OP
       2016-07-17 10:22:01 +08:00
    @shiny 这次活动初步统计有 2W+的真实刷奖 openid ,都是验证过后相互加分
    maxsec
        21
    maxsec  
       2016-07-17 12:59:52 +08:00 via iPad
    验证码,点击式的,滑动式的,
    shiny
        22
    shiny  
       2016-07-17 15:08:44 +08:00 via iPhone
    @king14 要是我做,就为分享后的好友加个激活条件,比如关注指定公众号,体验或消费或验证手机等才计积分,直接就计分了是容易被刷。
    wojiaodaxiaxia
        23
    wojiaodaxiaxia  
       2016-07-17 20:49:45 +08:00 via Android
    t/233173
    不知道这个有用没
    lianxiaoyi
        24
    lianxiaoyi  
       2016-07-18 09:17:05 +08:00
    @kungfuchicken   跟我一样 ...喜欢埋坑......我一般都是地址里面会带上 token ... key 等等字段....其实里面内容就是 base64 的"是不是该找条狗冷静一下",,,,"且撸且珍惜".....真正内容用一些不起眼的 key 代替
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     906 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 21:53 PVG 05:53 LAX 14:53 JFK 17:53
    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