You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何防止数据库收到未授权保存请求?在线点击游戏防作弊咨询

可行的校验方案

1. 接口请求签名校验

  • 服务端在游戏页面加载时,给每个用户生成唯一的动态签名密钥,和用户ID、有效期绑定存在服务端Session或者Redis中,同时把密钥下发到前端
  • 前端提交分数时,把用户ID、点击次数、当前时间戳、签名密钥几个字段拼接后做哈希运算(比如SHA256),把哈希值、时间戳和原始业务参数一起传给后端
  • 后端接收到请求后,先校验时间戳是否在有效期(比如5分钟内,避免重放攻击),再用同一套规则生成哈希和前端传的参数对比,不一致直接拒绝请求

注意:不要把签名算法明文写在未混淆的JS文件中,对前端JS代码做混淆加密,避免签名规则被逆向破解

2. 游戏逻辑服务端校验,弱化前端数据权重

  • 不要完全信任前端传的点击次数,禁止直接把前端传的值写入数据库
  • 服务端记录每个用户的游戏开始时间,同时统计理论最大可点击次数(比如普通人每秒最多点击10次,游戏时长60秒的话最大值就是600次),如果前端传的次数超过理论最大值直接判定为作弊
  • 可以增加随机行为校验逻辑,比如每隔几秒让前端回传点击的时间间隔序列,后端校验间隔是否符合正常人类的点击规律,完全均匀的间隔大概率是脚本作弊
  • 取消localStorage存储点击数的逻辑,改成每一次点击都发一个轻量的上报请求到服务端累计,服务端自己维护用户的点击总数,前端仅做展示用,最终入库的数值完全以服务端累计的为准

3. 临时会话绑定

  • 用户进入游戏时,服务端给每个用户发放唯一的游戏会话ID,该ID和用户IP、UA、游戏开始时间绑定,且只能在本次游戏生命周期内有效,游戏结束后立即失效
  • 只有携带合法有效会话ID的提交请求才会被处理,没有ID、ID已失效、和绑定的IP/UA不匹配的请求直接拒绝

4. 常规接口防护补充

  • 给接口加请求频率限制,同一个用户ID或者IP1分钟内最多提交N次,超过阈值直接封禁
  • 校验请求的Referer字段,只允许来自你自己游戏域名的请求,该字段可以伪造,仅作为辅助校验手段不要作为唯一依据

内容的提问来源于stack exchange,提问作者user1589375

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:09:03