已启用Firebase App Check仍遭实时数据库攻击该如何防范?
Firebase App Check强制校验开启后仍被恶意攻击的解决方案
- 配置逻辑排查
- 确认全端App Check集成正确性:检查网页端、移动端、服务端所有合法访问实时数据库的客户端是否均完成App Check的完整集成,漏配的端会成为攻击者的伪造请求突破口
- 补充实时数据库安全规则:App Check仅校验请求来源合法性,无法替代权限管控。禁止配置全局开放的读写规则
".read": true/".write": true,所有路径必须匹配对应权限校验逻辑,例如私有路径仅允许对应用户auth.uid === $uid时读写 - 排查服务端密钥泄露风险:若使用服务账号、云函数访问数据库,确认服务账号密钥未对外泄露,密钥泄露后攻击者可直接绕过App Check和安全规则发起请求
- 前置风险防控
- 配置账单预算阈值:在Firebase控制台设置预算提醒,绑定邮箱接收阈值触发通知,提前感知异常用量
- 设置资源硬限制:给实时数据库的最大连接数、单位时间读写次数、下行带宽配置用量上限,达到上限后自动拦截新请求,避免产生超额费用
- 攻击应急处理
- 攻击发生时第一时间将数据库调整为只读模式或临时关闭公开访问权限,拦截异常请求
- 向Firebase官方支持提交恶意流量账单申诉,非自身操作产生的异常费用支持申请减免
- 后续加固方案
- 在安全规则中添加请求频次校验逻辑,基于
request.time和用户UID限制单个用户单位时间内的请求次数,避免恶意刷量 - 核心数据的读写全部走云函数代理,客户端不直接操作核心数据路径,在云函数侧增加参数校验、权限校验、频率校验多层规则
- 在安全规则中添加请求频次校验逻辑,基于
内容的提问来源于stack exchange,提问作者Manish Koladiya
相关产品推荐
相关产品推荐

