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

如何识别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()
      
    调试模式会输出请求验证的详细日志,包括签名信息、设备标识等,可排查合法请求被误拦截的场景。
  • 服务端自定义验证场景:捕获令牌解析失败的具体原因(如令牌过期、签名无效、包名/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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 06:23:18