Skip to content

NFC 打卡规则与反作弊机制

打卡条件

用户打卡成功的前提是:

  • 识别到当前景点绑定的 NFC 标签;
  • 该标签状态为有效

标签状态规则

支持的标签状态:

  • active
  • inactive
  • invalid

规则说明:

  • 仅当标签状态为 active 时,允许打卡成功;
  • inactiveinvalid 状态下,打卡必须失败;
  • 标签被后台置为非 active 后,规则应立即生效

重复打卡规则

同一用户对同一景点重复打卡时:

  • 接口返回 success=true
  • rewardGranted=false
  • 不重复发放积分。

该规则本质上要求接口具备幂等语义,避免重复领奖。

反作弊(MVP)

UID 白名单仅为弱安全方案,服务端必须同时执行以下策略:

1. 频控

  • 维度:userId + spotId
  • 规则:在最短间隔内的重复确认请求,返回幂等结果;
  • 建议最短间隔:60s

2. 重放保护

  • 同一 X-Idempotency-Key 只允许成功一次;
  • 用于防止请求重放导致重复打卡或重复发奖。

3. 异常监控

当同一 UID 在短时间内被大量不同用户触发失败时,应执行:

  • 进入黑名单;或
  • 触发告警。

4. 运维管控

  • 标签可由后台置为 inactiveinvalid
  • 一旦标签不为 active,应立即不可打卡成功。

实施要点

  • 服务端必须校验景点与标签绑定关系;
  • 服务端必须校验标签状态,而不能仅依赖客户端判断;
  • 重复请求、短时连击、重放请求均应返回可预期的幂等结果。

谷子科技知识库平台 - 多格式摄入、受控编译、岗位隔离问答