如何重置Firebase项目,阻止旧版本应用及陌生账号访问?
解决方案:彻底重置Firebase配置并限制仅新版本应用访问
一、先清理异常认证账号
- 直接进入Firebase控制台的Auth页面,批量删除所有
name.number@gmail.com格式的陌生账号 - 开启Auth设置中的可疑登录检测,后续有异常登录行为会自动触发告警,方便及时处置
二、重置认证核心配置
1. 替换Google OAuth客户端ID
- 进入Firebase项目设置→应用→目标安卓应用,找到Google OAuth 2.0客户端ID,直接删除
- 重新生成新ID:添加新版本APP的全新SHA-256签名指纹(避免使用旧指纹,防止泄露风险),系统会自动生成新的OAuth客户端ID
- 新版本APP必须使用该新ID对应的配置,旧版本的旧ID会直接失效
2. 锁死认证入口权限
- 在Auth登录方法→Google选项中,关闭「允许所有Google账号登录」,要么改为仅允许指定域名邮箱登录(如果授权用户使用企业域邮箱),要么开启应用验证——只有匹配配置的SHA-256指纹的APP才能发起认证请求
- 强制启用App Check:在Firebase控制台开启App Check服务,为安卓应用配置Play Integrity(替代旧版SafetyNet),盗版/篡改的旧版本APP将无法通过验证,直接被拦截
三、重置API密钥与google-services.json
- 打开与Firebase绑定的Google Cloud控制台→API和服务→凭据,找到旧的Android API密钥并删除
- 重新生成新API密钥,必须添加应用限制:选择「Android应用」,填写新版本APP的包名+新SHA-256指纹,确保只有正版新版APP能使用该密钥
- 返回Firebase控制台,重新下载最新的
google-services.json文件,替换到新版本APP的代码中,旧版本使用的旧配置会直接失效
四、重置云函数相关配置
- 如果云函数使用了服务账号密钥:进入Firebase项目设置→服务账号,删除旧密钥并重新生成新密钥,更新到云函数的部署配置中
- 为所有云函数添加权限校验逻辑:在函数入口处验证请求的UID是否属于授权的4个用户,或验证App Check令牌,确保只有合法APP能调用
- 重新部署所有云函数,确保新配置生效
五、彻底封杀旧版本应用访问
- 在App Check或API密钥的应用限制中,除了包名和SHA-256,还可添加版本号限制(如果APP有版本校验逻辑),仅允许指定的新版本号访问
- 在新版本APP中添加强制更新逻辑:启动时先检查服务器上的最新版本号,旧版本直接跳转应用商店更新,禁止使用核心功能
- 未开启App Check的旧版本APP,会因无法获取有效令牌直接被Firebase服务拦截
六、排查泄露源头
- 检查私有GitHub仓库的提交记录,搜索
google-services.json、API密钥、SHA-256等关键词,确认是否有意外提交的敏感信息 - 排查4个授权用户的设备,确认是否存在恶意软件或账号被盗情况
- 查看Google Cloud的API调用日志,分析异常请求的IP和设备信息,定位泄露渠道
内容的提问来源于stack exchange,提问作者Alex Stroescu
相关产品推荐
相关产品推荐

