当您直接从移动应用和 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 引荐来源网址 (Web) 的请求。
查看每个密钥的 “API 限制”许可名单:
- 确保 Firebase AI Logic API (
firebasevertexai.googleapis.com) 在许可名单中。 - 确保许可名单中仅包含您的应用所需的特定 Firebase 服务。请参阅受限 Firebase 密钥所需的 API 列表。
- 确保 Firebase AI Logic 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 控制台中检查各个轨迹。
设置速率限制和管理配额
保护您的项目免遭意外使用量高峰和钱包拒绝服务攻击:
- 设置每个用户的速率限制(默认值为 100 RPM),以防止单个客户端实例消耗过多的配额。
- 在 Google Cloud 控制台中查看和管理每个底层 API 的项目配额。
通过提醒和支出上限避免出现意外费用
如果您的 Firebase 项目采用的是随用随付 Blaze 定价方案:
后续步骤
- 查看一般 Firebase 安全核对清单。
- 查看Firebase AI Logic 的常规生产核对清单。
- 详细了解 Firebase AI Logic 的价格和费用管理。