Tal*_*dar 1 recaptcha firebase recaptcha-v3 firebase-app-check
我正在尝试使用 Firebase App Check 并以 reCAPTCHA v3 Enterprise 作为证明提供商来保护 Web 应用程序的自托管后端,但我对此设置的计费结构有一些疑问。
仅使用 reCAPTCHA v3 时,标准流程是使用 以编程方式在客户端调用质询grecaptcha.execute,检索令牌,然后将其发送到后端。随后,后端通过向 reCAPTCHA 服务器发出 API 请求来验证令牌。我对 reCAPTCHA Enterprise 定价页面的理解是,每次在后端验证令牌时我都会付费。
相比之下,Firebase App Check 的流程似乎略有不同。在这里,客户端通过 Firebase App Check 与 reCAPTCHA v3 交互,并接收令牌形式的“证明”。然后,客户端将此令牌发送到我的后端,我的后端通过向 Firebase 服务器发出请求来验证令牌的有效性。此外,Firebase App Check 令牌具有可配置的过期时间,并且可以重复使用,并且可以选择启用重播保护。
鉴于此,我不清楚 Firebase App Check 与 reCAPTCHA v3 集成时的计费方式。具体来说,我想知道:
任何对这些问题的见解将不胜感激。
这里是 Firebaser,感谢您提出这个问题。
\n为了回答你的两个问题,
\nassessment.create()您调用时,他们才会向您计费,这种情况发生在 App Check 令牌的 TTL 已过大约 50% 时(如果您使用的 App Check 没有重播保护)。如果您使用带有重播保护的 App Check,则每次想要访问受保护的后端时都需要获取新的 App Check 令牌,这意味着assessment.create()每次都会调用,从而可能会增加创建的评估数量没有重播保护。因此,我们建议您仅在访问量较低的最安全敏感端点上使用重播保护。assessment.create()调用一次,但请记住,App Check SDK 设计为在 TTL 已过大约 50% 时立即刷新令牌(有效刷新速度约为您配置的 TTL 速率的两倍)。您可以在 Firebase 控制台中调整此 TTL。如果您对更详细的回复感兴趣,包括与新的重播保护功能的交互,请参阅下文。
\n我注意到您的帖子提到了 reCAPTCHA v3 和 reCAPTCHA Enterprise,所以让我们首先注意它们之间的区别:
\nassessments.create决定了您的计费金额。它还包括基本支持和 99.9% 以上的正常运行时间 SLA。对于我回复的其余部分,我假设您在帖子中指的是reCAPTCHA Enterprise(而不是reCAPTCHA v3)。
\n让我们以 reCAPTCHA Enterprise 作为您的证明提供商来讨论 App Check。基本的客户端流程(没有重放保护)如下:
\ngrecaptcha.enterprise.execute()获取 reCAPTCHA Enterprise 令牌。assessment.create()代表您调用并读取评估,以确保 reCAPTCHA Enterprise 令牌有效。X-Firebase-AppCheck)。如果您的应用程序使用官方 Firebase SDK 与受 App Check 保护的 Firebase 后端进行通信,则会自动为您完成此步骤。这意味着 App Check(没有重播保护)本质上采用基于会话的模型,其中有效的 App Check 令牌是经过验证的应用程序会话的证明,并且只要未过期,它就有效。
\n接下来,我们来谈谈基本的服务器端流程。我们建议您使用 Firebase Admin SDK执行以下步骤。
\n与直接与 reCAPTCHA Enterprise 集成相比,通过使用 App Check 基于会话的模型,您可以在多个因素之间进行权衡。我们在这里列出了您应该考虑的所有维度:
\n还可以通过增加或减少 App Check 令牌的 TTL来调整其中一些因素的权衡。
\n到目前为止,我们已经讨论了传统的基于会话的模型,但正如您正确指出的那样,我们最近推出了新的重播保护功能。这项新功能使用一种完全不同的模型,该模型与与 reCAPTCHA Enterprise 的直接集成非常相似:对重播保护端点的每次调用都必须调用新的证明。根据定义,在上面的权衡列表中,我们选择在牺牲性能和计费的同时尽可能保证安全,但请注意,至关重要的是联合优势仍然存在。另一个关键区别是,与传统的基于会话的模型不同,Admin SDK 需要联系 Firebase App Check 后端来验证令牌之前是否未被使用过。然而,即便如此,这种验证仍然不需要您支付任何费用。
\n此功能现已在 Cloud Functions for Firebase 以及您自己的后端上提供。我们建议开发人员使用此功能仅保护访问量较低的对安全最敏感的端点,因为它可能会比 App Check 的传统模型创建更多的评估(因为每个调用都需要一个新的评估,就像与 reCAPTCHA Enterprise 直接集成)。
\n[编辑以修复一些遗漏。]
\n| 归档时间: |
|
| 查看次数: |
697 次 |
| 最近记录: |