Firebase 应用检查
App Check 通过防止未经授权的客户端访问您的后端资源来帮助保护您的 API 资源免遭滥用。它适用于 Firebase 服务、Google Cloud 服务和您自己的 API,以确保您的资源安全。
借助 App Check,运行您的应用的设备将使用可证明以下一项或两项的应用或设备证明提供程序:
- 请求来自您的真实应用
- 请求来自真实的、未篡改的设备
此证明附加到您的应用程序向您指定的 API 发出的每个请求。当您启用应用检查强制执行时,来自没有有效证明的客户端的请求将被拒绝,来自您未授权的应用或平台的任何请求也将被拒绝。
App Check 内置支持将以下服务用作证明提供者:
- Apple 平台上的DeviceCheck或App Attest
- 在 Android 上播放 Integrity或SafetyNet (已弃用)
- web 应用程序上的reCAPTCHA v3或reCAPTCHA Enterprise
如果这些不足以满足您的需求,您还可以使用第三方证明提供者或您自己的证明技术来实现自己的服务。
App Check 目前适用于以下 Firebase 产品:
支持的 Firebase 产品 |
---|
实时数据库 |
云防火墙 |
云储存 |
云函数(可调用函数) |
您还可以使用 App Check 来保护您的非 Firebase 后端资源。
准备好开始了吗?
它是如何工作的?
当您为服务启用 App Check 并在您的应用中包含客户端 SDK 时,会定期发生以下情况:
- 您的应用程序与您选择的提供商交互以获得应用程序或设备真实性的证明(或两者,取决于提供商)。
- 该证明被发送到 App Check 服务器,该服务器使用在应用中注册的参数验证证明的有效性,并向您的应用返回一个带有过期时间的 App Check 令牌。此令牌可能会保留有关其验证的证明材料的一些信息。
- App Check 客户端 SDK 将令牌缓存在您的应用程序中,准备好与您的应用程序向受保护服务发出的任何请求一起发送。
受 App Check 保护的服务仅接受带有当前有效 App Check 令牌的请求。
App Check 提供的安全性有多强?
App Check 依靠其证明提供商的实力来确定应用程序或设备的真实性。它可以防止一些(但不是全部)针对您的后端的滥用向量。使用 App Check 并不能保证消除所有滥用行为,但通过与 App Check 集成,您正在朝着保护后端资源的滥用行为迈出重要一步。
App Check 与 Firebase 身份验证有何关系?
应用检查和 Firebase 身份验证是应用安全故事的补充部分。 Firebase 身份验证提供用户身份验证,从而保护您的用户,而 App Check 提供应用或设备真实性的证明,从而保护您,即开发人员。 App Check 通过要求 API 调用包含有效的 Firebase App Check 令牌来保护对 Firebase 资源和自定义后端的访问。这两个概念共同作用以帮助保护您的应用程序。
配额和限制
您对 App Check 的使用受限于您使用的证明提供商的配额和限制。
DeviceCheck 和 App Attest 访问受限于 Apple 设置的任何配额或限制。
Play Integrity 的标准 API 使用层的每日调用配额为 10,000 次。有关提高使用等级的信息,请参阅Play Integrity 文档。
SafetyNet 的每日配额为 10,000 个呼叫。有关请求增加配额的信息,请参阅SafetyNet 文档。
reCAPTCHA v3 的每月配额为 100 万次调用,以及 1,000 QPS 的限制。有关请求增加配额的信息,请参阅reCAPTCHA 文档。
reCAPTCHA Enterprise 每月可免费拨打 100 万次电话,而且费用超出此范围。请参阅reCAPTCHA Enterprise 定价。
开始使用
准备好开始了吗?
苹果平台
安卓
网络
扑
了解如何实现自定义 App Check 提供程序:
了解如何使用 App Check 保护您的非 Firebase 后端资源: