如何识别Firebase App Check未验证请求的来源
排查Firebase App Check未验证请求来源的方法
1. 启用App Check调试日志
- 客户端平台开启调试模式:
- Android:初始化App Check时添加调试开关
FirebaseAppCheck.getInstance().installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance() ).apply { setDebugEnabled(true) } - iOS:在配置App Check前启用调试
AppCheck.setDebugEnabled(true) FirebaseAppCheck.configure()
- Android:初始化App Check时添加调试开关
- 服务端自定义验证场景:捕获令牌解析失败的具体原因(如令牌过期、签名无效、包名/Bundle ID不匹配等)并记录,这些信息直接指向请求问题的核心。
2. 利用Firebase控制台监控数据
- 进入Firebase控制台的App Check页面,查看「验证失败」统计面板,面板会按失败原因分类(无效令牌、无令牌、令牌过期等),还能显示请求的平台、地区分布。
- 在App Check设置中开启「详细日志记录」,控制台会保留近期验证失败请求的元数据,包括IP地址、User-Agent等,可判断请求来自浏览器、移动设备还是未知脚本。
3. 服务端自定义收集请求元数据
在拒绝未验证请求前,记录以下关键信息:
- 请求IP地址
- User-Agent字符串
- 请求路径与参数
- 请求时间戳
这些数据能帮你分析请求规律,比如是否来自固定IP段、是否带有爬虫脚本特征的User-Agent,或是测试环境未配置的请求。
4. 排查常见未验证请求来源
- 测试环境/内部工具:检查内部测试工具、CI/CD流程是否未配置App Check令牌,这类请求通常有固定IP或User-Agent。
- 爬虫/恶意扫描:这类请求的User-Agent常包含爬虫标识,请求路径多为常见API端点,且频率较高。
- 旧版本客户端:未升级的旧版App若未集成App Check,会发送无令牌请求,可通过User-Agent中的版本号识别。
- 跨域请求/第三方集成:检查第三方服务(如Webhook、合作伙伴接口)调用API时是否未配置App Check验证。
5. 结合Firebase Analytics定位(可选)
如果App集成了Firebase Analytics,可在客户端成功获取App Check令牌时发送自定义事件,记录设备信息、用户ID等;结合服务端记录的未验证请求IP与时间,匹配Analytics中的用户行为数据,排查是否为合法用户的异常请求。
内容的提问来源于stack exchange,提问作者flyingAssistant
相关产品推荐
相关产品推荐

