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

Firebase Cloud Firestore公开读仅认证写的安全风险咨询

Cloud Firestore 当前配置的安全风险说明

你当前配置的全局规则等价于全库公开可读、任意认证用户可全库读写,不存在任何数据粒度的权限校验,存在明确的安全隐患:

具体安全隐患

  • 全量数据无门槛泄露:所有路径的读权限完全放开,任何人只要拿到你的Firebase项目ID(该参数默认会打包到前端代码中,抓包、查看前端源码即可轻松获取),不需要任何身份验证就能遍历、爬取你Firestore内的全部数据,包括用户隐私信息、业务核心数据等。
  • 认证用户可任意篡改全库数据:只要是完成你项目身份认证的用户(不管是普通注册用户、还是恶意注册的虚拟账号),都拥有所有文档的增、删、改权限,没有任何操作限制。
  • 完全没有数据隔离能力:没有配置文档级的权限校验,普通用户可以随意修改、删除其他用户的个人数据、管理员配置的业务规则数据,100%存在越权操作漏洞。

最坏影响

  • 涉及用户隐私的敏感数据全部泄露,违反《个人信息保护法》等合规要求,可能面临监管处罚和用户民事索赔。
  • 数据库被恶意用户批量写入垃圾数据、甚至全库清空,业务直接瘫痪,且被删除的数据如果没有备份几乎无法恢复。
  • 核心业务数据被篡改(比如用户余额、交易记录、内容审核状态等),会造成直接的经济损失和品牌信誉损害。

外部人员获取访问权限的难度

门槛极低。
Firebase项目的前端配置参数(项目ID、API密钥等)本身就是公开的,任何人都可以轻易获取:

  • 读权限不需要任何额外操作,拿到参数后直接调用Firebase SDK即可读取全库数据。
  • 写权限仅需要完成一次你项目的身份认证即可,如果你的项目开启了匿名注册、邮箱注册等低门槛认证方式,恶意人员只需要几秒就能拿到合法的认证凭证,获得全库写权限。

基础修复建议

作为新手可以先从收窄权限范围开始优化:

  1. 取消全局allow read: if true配置,仅给需要对外公开的集合(比如公开的内容列表、商品展示数据等)单独配置公开读权限,非公开数据必须加身份校验,比如仅文档所有者可读的配置:allow read: if request.auth != null && request.auth.uid == resource.data.owner_uid
  2. 取消全局allow write: if request.auth != null配置,按业务场景分集合配置写权限,比如普通用户只能修改自己创建的文档,禁止普通用户写入管理员配置类集合。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:09:03