收藏
回答

云开发怎么防刷赞

框架类型 问题类型 终端类型 AppID 环境ID 基础库版本
小程序 Bug 工具 wxe02ffa328820c46a icemono-1giecaaj02676f6a 2.14.4

前几天上线了一个功能:集赞可以兑换无门槛优惠券(每个openid只能对每个条目点一次赞,openid在云开发云端获取)。

代码如下:

  if (methodType == 'add') { //点赞
    const countData = await db.collection('cat-favor').where({
      openid: openid,
      catId: catId
    }).count()
    console.log(countData)
    if (countData && countData.total > 0) {
      //已经点过赞了
    } else {
      const data = {
        openid: openid,
        catId: catId,
        createTime: new Date().getTime()
      }
      return await db.collection('cat-favor').add({
        data: data
      })
    }
  }

然后3月14日有用户2个小时就集了500个赞。我看了一下云开发面板,当日活跃用户数达到602,感觉没有问题。

我看了数据库点赞记录,每个openid都是不一样的,也没问题。


但是,今天(3月15日),「小程序数据助手」小程序出了昨天的报表后,感觉被刷赞了。

显示昨天的总用户数也就80。


那么,问题来了?我怎么判断哪些openid是刷的呢?

回答关注问题邀请回答
收藏

3 个回答

  • Winter
    Winter
    2021-03-29
    // 限制IP点赞数防刷赞
          const CLIENTIP = wxContext.CLIENTIP
          const clientData = await db.collection('cat-favor').where({
            CLIENTIP: CLIENTIP,
            catId: catId
          }).count()
          if (clientData.total > 5) {
            return {}
          }
    
    2021-03-29
    有用
    回复
  • 郭涛
    郭涛
    2021-03-16

    云开发和小程序数据助手撞车现场?[笑哭]

    2021-03-16
    有用
    回复 3
    • Winter
      Winter
      2021-03-17
      是的,是的。到底谁对呢?客户也不多,又感觉没有刷。
      2021-03-17
      回复
    • 郭涛
      郭涛
      2021-03-18回复Winter
      我觉得该以数据助手为准吧😄
      假设真的存在刷赞,微信比腾讯云有更大概率能顾识别出来。
      出现这种统计数据不一致的情况,有可能是数据助手展示的数据是去除僵尸用户数据? 如果真是这样,我期待小程序也开放这个防刷的识别能力。
      不过在此之前,你的兑换标准,估计还得按云开发统计的数据 来。。
      2021-03-18
      回复
    • Winter
      Winter
      2021-03-18回复郭涛
      是的,我没法判断用户是否为无效。想过加验证码,但其实验证码也存在破解问题,而且验证码做得不好会让客户觉得恶心。
      2021-03-18
      回复
  • Charb
    Charb
    2021-03-15

    先判断一下用户是否存在,如果存在再继续下面的操作

    2021-03-15
    有用
    回复 1
    • Winter
      Winter
      2021-03-15
      求助,怎么判断用户是否存在?我openid是这样拿到的
      2021-03-15
      回复
登录 后发表内容
问题标签