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

Firebase Realtime Database 配置登录校验规则仍提示不安全如何解决

警告触发原因

你当前配置的规则仅完成了最基础的登录状态校验,没有做数据权限的细粒度限制:任意完成登录的用户都可以访问、修改、删除整个数据库的所有数据,包括其他用户的私有数据,存在严重的数据泄露和篡改风险,因此平台会触发安全警告。

规则调整方案

场景1:用户仅可读写自身私有数据

若你的数据库存储结构按用户UID划分目录,示例结构如下:

{
  "users": {
    "xxx用户1的UIDxxx": {
      "昵称": "用户1",
      "私有数据": "xxx"
    },
    "xxx用户2的UIDxxx": {
      "昵称": "用户2",
      "私有数据": "xxx"
    }
  }
}

可将规则调整为仅允许用户读写自身UID对应的目录:

{
  "rules": {
    "users": {
      "$uid": {
        ".read": "$uid === auth.uid",
        ".write": "$uid === auth.uid"
      }
    }
    // 其他业务路径的权限单独配置,不要在根节点设置全局读写规则
  }
}

场景2:公开数据允许所有登录用户读、仅管理员可写

若存在公共数据目录(比如public)需要开放读权限,可以单独配置该路径规则,同时限制写权限仅管理员拥有,示例规则如下(前提是你已在用户数据中配置了isAdmin标识字段判断管理员身份):

{
  "rules": {
    "public": {
      ".read": "auth.uid != null",
      ".write": "root.child('users').child(auth.uid).child('isAdmin').val() === true"
    }
  }
}

通用优化建议

  • 禁止在根节点配置全局读写权限,所有权限按业务路径拆分配置
  • 写规则可额外增加字段格式校验,限制写入的数据类型、字段范围,避免非法数据入库
  • 调整规则前可使用Firebase控制台自带的规则 playground 工具,模拟不同用户的读写请求,确认权限配置符合预期

内容的提问来源于stack exchange,提问作者Rathod Ruturaj sinh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:45:02