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

Firebase实时数据库漏洞:存储令牌跨服务访问的防护问询

解决方案

1. 利用Realtime Database安全规则校验令牌受众(aud)

Firebase不同服务的认证令牌带有**受众(aud)**字段,标识该令牌的授权服务:

  • Realtime Database令牌的aud值为你的数据库URL(如https://project_name.firebaseio.com)
  • Storage下载令牌的aud值为你的Storage Bucket标识(如project_name.appspot.com)

修改数据库安全规则,仅允许两种请求访问:

  • 无认证令牌的未授权请求(满足无需认证只读需求)
  • 令牌受众匹配Realtime Database URL的请求(合法的DB访问令牌)

具体规则代码:

{
  "rules": {
    ".read": "auth == null || auth.token.aud === 'https://project_name.firebaseio.com'",
    ".write": false
  }
}

此规则会直接拦截带有Storage令牌的请求(因其aud不匹配DB的URL),同时保留未认证的只读访问权限。

2. 确认Storage安全规则配置正确

确保Storage仅开放只读访问,避免令牌被滥用获取额外权限:

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read: if true;
      allow write: if false;
    }
  }
}

3. 结合Play Integrity强化防护(后续阶段)

待Play Integrity部署完成后,可在Realtime Database规则中添加App Check校验,进一步限制请求仅来自你的合法Android应用,同时保留未认证访问(若需):

{
  "rules": {
    ".read": "(auth == null || auth.token.aud === 'https://project_name.firebaseio.com') && request.app != null",
    ".write": false
  }
}

此配置会要求所有请求通过App Check验证(确保来自你的应用),同时保留原有的令牌受众校验和未认证访问逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 03:15:13