如何限制 Firebase Cloud Function 只接受来自 Firebase Hosting 网站的请求

How to restrict Firebase Cloud Function to accept requests only from Firebase Hosting website

我在 Firebase Cloud Functions 上托管了一个 Node.js API(使用 Express.js 构建),并在 Firebase Hosting 应该与上述 API.

交互

我想限制对 API 的调用,以便只有 Web 应用程序能够调用云函数。我怎样才能做到这一点?

我尝试过的:

在任何人提议从 API 中限制 CORS 选项中的域之前,虽然这可能用于限制对 API 端点的访问,但它仍然允许快速调用该函数并且因此,可能会增加账单。

非常感谢任何建议!

这里是 Firebaser

这是一个很好的问题! Doug 已经在上面提出了一些重要的观点,我将补充一点,App Check 令牌上的 TTL 减少了您在第一次观察到的 replay window要点,这个 TTL 是 configurable.

reCAPTCHA v3 的默认 TTL 为 1 天以防止 运行 超出配额,但您可以设置更短的 TTL 以增加攻击者尝试设置重播攻击的成本。但是请注意文档中描述的相关权衡。您可以阅读相关配额和限制 here.

遗憾的是,从 Firebase 托管重定向的 Web 应用程序无法连接到 GCP 内部网络。在这种情况下,App Check 实际上正是您要寻找的。

最后,由于我们一直致力于改进 App Check 平台,您在此处留下的评论对我们很有价值,因为我们会决定接下来要开发哪些反滥用功能。