收藏
回答

小程序wx.login获取code接口疑似被刷?

您好。我们小程序有一个投票功能,为了防止投票接口恶意被刷,我们用了前后端md5(参数+约定key), 加密方式。但是发现我们的小程序可能被反编译,通过我们后台日志分析,sign参数的加密方式完全正确。我们之所以认为他是恶意接口,是因为这个ip或者openid没有任何其他浏览日志,只有投票接口日志。

万般无奈之下,我们决定尝试用wx.login拿code当参数传进来。

每次投票不仅要传递sign签名参数和登陆时openid参数,还会传递code(用wx.login获取一个新的code)。服务端用code即时拿openid,并对比这个openid与传进来的openid参数是否一致。理论上,恶意刷投票接口的程序应该拿不到正确当code才对。但经过日志分析,我们升级此方案后,刷票行为大约停止了1天。然后又很快被破解。

1天后,又出现了,同ip或openid没有其他浏览日志,只有投票日志。并且投票日志中带的code参数也顺利换取了openid。

注1:我们小程序登陆之后的每个接口,都带了openid参数。所以能分析出某个openid的行为浏览日志。

注2:我们用了jwt。token字段是每个接口都有的。对方会批量注册很多账号,都是真实有效的微信号。会把我们的token和对应的openid保存起来。我们token的有效期确实也有点长。

注3:对方刷票不是说随便刷,就是一个openid肯定只能刷一票,但对方有很多openid。并且每个都是注册进来的,真实有效的。服务端有IP防刷,但对方基本上刷3,4票,换一个IP。

注4:也排出羊毛党刷单群这种,因为这种肯定有其他的浏览记录,不可能直接调投票接口。

注5: 我们后台通过行为日志肯定能分析出被刷票的作品,但不能随意取消作品,怕别人是恶意被刷。

注6: 就是不理解刷子是如何拿到正确的code。

最后一次编辑于  2020-07-13
回答关注问题邀请回答
收藏

3 个回答

  • 大熊
    大熊
    2020-12-18

    遇到了同样的问题, 小程序授权注册被刷了, code 不是通过 我们小程序里wx.login拿的, 导致我们单日的注册量 3w, 然而日活只有1w ,,,, 官方能不能出来给个解释.... @微信官网

    2020-12-18
    有用
    回复
  • 俊杰Hiro
    俊杰Hiro
    2020-07-13

    有刷票行为的直接取消资格,o了

    2020-07-13
    有用
    回复 1
    • coopy
      coopy
      02-07
      我怀疑你就是刷票的
      02-07
      回复
  • 微喵网络
    微喵网络
    2020-07-13

    jwt了解一下

    2020-07-13
    有用
    回复 3
    • 大熊
      大熊
      03-05
      这和jwt没啥关系吧, 问题的关键在于, 别人在外部直接生成了小程序可用的code, 并没有在小程序里通过wx.login 生成.....
      03-05
      回复
    • 微喵网络
      微喵网络
      03-05回复大熊
      code不可能在外部绕过wx.login获取
      03-05
      回复
    • 大熊
      大熊
      03-06回复微喵网络
      那小程序单日 日活 只有1w, 注册量却是3w 这个怎么解释呢? 唯一的可能就是code在外部被刷了
      03-06
      回复
登录 后发表内容
问题标签