You need to enable JavaScript to run this app. 如何校验Firebase官方认证服务合法userID以保障Firebase数据安全
优惠活动
大模型
产品
解决方案
定价
更多

如何校验Firebase官方认证服务合法userID以保障Firebase数据安全

首先要澄清一个核心认知误区:你担心的攻击者伪造request.auth对象绕过安全规则的情况,在Firebase生产环境中完全不可能发生。

request.auth是Firebase服务端在校验客户端请求携带的ID Token合法后,直接注入到安全规则运行环境的对象,客户端没有任何权限篡改或者自定义这个对象的内容,你提到的传入auth = {something: "hacker"}的场景,仅存在于本地模拟器的测试流程中,是开发者主动给模拟器传入自定义测试上下文才会出现的情况,和生产环境的运行逻辑完全无关。

如果你只是需要实现「仅已认证用户可写入」的需求,你最初写的allow write: if request.auth != null;规则本身就足够安全,不需要额外做其他校验。

如果你的业务有更严格的要求,比如要拦截已被删除的账号(ID Token还未过期的极短时间窗口内的请求),可以按以下步骤配置额外校验:

  • 首先在Firestore中维护用户集合,比如路径为/users/{uid},用户注册成功时写入对应uid的文档,用户账号被删除时同步删除该文档
  • 调整安全规则,增加用户有效性校验:
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    allow write: if request.auth != null && exists(/databases/$(database)/documents/users/$(request.auth.uid));
    // 其他规则逻辑
  }
}

内容的提问来源于stack exchange,提问作者Martin Müsli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 05:45:02