使用 Firebase AI Logic 的安全核对清单

当您直接从移动应用和 Web 应用调用 Gemini API 时,为了保护后端基础设施、配额和专有提示,需要采用多层深度防御方法。查看此核对清单,以针对 Firebase AI Logic 实施建议的安全最佳实践。

应用、设备和用户验证

验证传入请求是否来自在正版设备上运行的、未经篡改的正版应用实例,以及是否来自正版用户。

强制执行 Firebase App Check

强制执行 Firebase App Check 可帮助保护 Gemini API 免遭滥用(当它直接从您的应用中调用时)。强制执行 App Check 时,它会验证传入的请求是否来自您的正版应用和/或未经篡改的设备。

App Check 支持 Apple 平台(DeviceCheck、App Attest 或 reCAPTCHA Enterprise)、Android(Play Integrity 或 reCAPTCHA Enterprise)和 Web (reCAPTCHA Enterprise) 的证明提供方。它还支持 Flutter 和 Unity 应用的所有这些提供方。

自 2026 年 7 月初起,Firebase 会在 Firebase 控制台的引导式设置过程中自动为 Firebase AI Logic 强制执行 App Check。如果您之前设置了 Firebase AI Logic,请务必明确强制执行 App Check。对于本地开发,您可以设置 App Check 调试提供方,然后在向最终用户发布之前,使用生产证明提供方注册您的应用。

使用限制用途的令牌启用重放攻击防范

在设置 App Check 时,请考虑强制执行重放攻击防范,以便 App Check 令牌只能使用一次。此选项可提供比基准保护更出色的保护,让您可以为应用和用例设置适当的保护级别。

为 Firebase API 密钥设置限制

Firebase API 密钥用于在发出请求时标识您的 Firebase 项目和应用。为防止 API 密钥被未经授权地使用,请执行以下操作:

  • 在 Google Cloud 控制台中设置“应用限制”,以将密钥使用范围限制为仅限来自应用的特定软件包 ID (Apple)、软件包名称和 SHA-1 指纹 (Android) 或 HTTP Referer(网页)的请求。

  • 查看每个密钥的 “API 限制”许可名单:

    • 确保 Firebase AI Logic API (firebasevertexai.googleapis.com) 在许可名单中。
    • 确保许可名单中仅包含您的应用所需的特定 Firebase 服务。请参阅受限 Firebase 密钥所需的 API 列表。

请注意,Firebase 相关 API 仅使用 API 密钥来标识 Firebase 项目或应用,不用于授权调用 API。

将请求限制为仅限经过身份验证的用户

考虑强制执行“已通过身份验证的用户”模式,以便通过 Firebase AI Logic 发出的所有请求都必须包含来自 Firebase Authentication 的有效凭据。如果请求来自未经身份验证的最终用户,则请求会被拒绝并显示 401: unauthenticated 错误。

提示保护和请求强化

防止客户端反编译泄露您的提示设计,并锁定您的后端,以防恶意用户执行任意提示。

使用服务器端提示词模板

使用服务器提示模板将提示、系统指令和模型配置安全地保存在云端,而不是在客户端应用代码中对其进行硬编码,以免它们被使用二进制反编译提取。

您的应用仅引用模板 ID 并传递动态输入变量。 借助服务器提示模板,您还可以根据需要更新提示或切换模型,而无需发布新版应用。

验证并清理客户端提供的模板变量

服务器提示模板可保护您的提示设计,但接受动态变量的模板仍可能容易受到提示注入攻击。由于模板会将用户输入变量串联到最终提示中,因此请务必执行以下操作:

  • 在将变量传递给模板之前,请在客户端上验证并清理所有用户输入(例如强制执行字符数限制和预期格式)。
  • 在模板中添加清晰的系统说明,以定义用户输入的处理方式。

强制执行“仅模板”模式

考虑在所有应用功能都使用服务器提示模板后强制执行仅限模板模式。强制执行后,Firebase AI Logic 会屏蔽对 Gemini API (403: unauthorized) 的所有直接的非模板化请求,从而防止恶意方发送任意提示或滥用您的配额。

监控、限制和结算

深入了解传入流量和安全异常情况,并保护您的项目免遭意外的使用量激增或费用失控。

在 Firebase 控制台中设置 AI 监控

在 Firebase 控制台中设置 AI 监控,以便了解请求数、延迟时间、token 使用情况和错误率(包括 401 身份验证失败和 403 仅限模板的块)等关键指标。您还可以在 Google Cloud 控制台中检查各个轨迹。

设置速率限制和管理配额

保护您的项目免遭意外的使用量高峰和钱包拒绝服务攻击:

通过提醒和支出上限避免出现意外费用

如果您的 Firebase 项目采用的是随用随付 Blaze 定价方案:

后续步骤