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

Google提示Firebase数据库规则不安全,已认证用户能否通过其他途径修改数据?

问题答复

  • 已通过身份验证的用户完全可以绕过你的应用,通过其他途径修改数据库数据。
    原因很简单:你的Firebase项目配置信息本身就打包在客户端安装包中,任何人都可以轻松提取到这些配置,之后直接调用Firebase官方SDK或者REST接口,只要完成正常的身份认证流程拿到有效令牌,就可以无视你客户端侧的所有逻辑限制,对整个数据库执行读写操作,客户端的校验完全起不到安全防护作用。
  • 你当前的规则确实属于高风险配置,完全可以在不影响游戏现有逻辑的前提下收紧权限,参考配置如下(假设所有玩家提交的数据都存储在/online_players目录下,每个用户对应自己UID命名的子节点):
{
  "rules": {
    ".read": "auth != null",
    "online_players": {
      "$user_uid": {
        // 仅允许用户修改自己UID对应的节点
        ".write": "auth != null && auth.uid == $user_uid",
        // 校验写入的字段和格式必须符合业务要求,可根据你的实际业务调整
        ".validate": "newData.hasChildren(['nickname', 'current_score', 'online_status']) && newData.child('current_score').isNumber() && newData.child('current_score').val() >= 0"
      }
    }
  }
}
  • 调整后你不需要修改任何客户端逻辑,游戏可以正常运行,同时可以解决Google的安全提示,也彻底避免用户恶意篡改数据的风险。你可以根据自己实际的存储目录结构、允许写入的字段和数值范围调整上述规则中的对应部分即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:15:05