Appearance
NFC 打卡规则与反作弊机制
打卡条件
用户打卡成功的前提是:
- 识别到当前景点绑定的 NFC 标签;
- 该标签状态为有效。
标签状态规则
支持的标签状态:
activeinactiveinvalid
规则说明:
- 仅当标签状态为
active时,允许打卡成功; inactive或invalid状态下,打卡必须失败;- 标签被后台置为非
active后,规则应立即生效。
重复打卡规则
同一用户对同一景点重复打卡时:
- 接口返回
success=true; - 但
rewardGranted=false; - 不重复发放积分。
该规则本质上要求接口具备幂等语义,避免重复领奖。
反作弊(MVP)
UID 白名单仅为弱安全方案,服务端必须同时执行以下策略:
1. 频控
- 维度:
userId + spotId - 规则:在最短间隔内的重复确认请求,返回幂等结果;
- 建议最短间隔:
60s
2. 重放保护
- 同一
X-Idempotency-Key只允许成功一次; - 用于防止请求重放导致重复打卡或重复发奖。
3. 异常监控
当同一 UID 在短时间内被大量不同用户触发失败时,应执行:
- 进入黑名单;或
- 触发告警。
4. 运维管控
- 标签可由后台置为
inactive或invalid; - 一旦标签不为
active,应立即不可打卡成功。
实施要点
- 服务端必须校验景点与标签绑定关系;
- 服务端必须校验标签状态,而不能仅依赖客户端判断;
- 重复请求、短时连击、重放请求均应返回可预期的幂等结果。
