安全云 运行 服务仅在浏览器中接受来自域的请求(而不是 Postman / shell 脚本)

Secure Cloud Run service to accept requests from a Domain in Browser only (and not Postman / shell script)

我们已经完成了 authentication overview,但它没有回答我们的问题,因此请联系这里的专家。

我们的 Web 应用程序一旦加载到浏览器上,用户就会向我们的云端服务发出请求 运行。我们希望保护我们的后端服务,以便只有我们的域可以访问此服务,而不是某些使用 Postman 或 shell 脚本访问/更新数据的用户。

最终用户访问授权

因为用户不必总是登录,我们希望 Cloud 运行 响应请求,即使没有身份验证令牌。这消除了我们的最终用户访问服务选项。

服务到服务授权:

因为发出请求的是浏览器,而不是我们 GCP 平台中的其他服务,所以即使这个选项对我们也不起作用。

我们后端的用户数据是安全的,因为这些端点需要身份验证令牌,但是,不需要身份验证令牌的页面是不安全的,并且可能容易受到 DDOS 或 bot/scraping 攻击。

我们如何保护我们的云 运行 服务,以便仅响应来自我们 Web 应用程序的调用而不响应其他调用?

您无法确定 Web 应用程序是请求的发送方。实际上,在 Web 环境中,您在客户端发送代码。从这里,用户(好的或坏的)可以进入你的代码并了解它是如何工作的,请求的 header 是什么,这些 header 是如何构建的,...

复杂、低效的事情可想而知……也许,最好的办法就是外挂一个API网关,对用户进行限速。这样,即使用户使用自动化的东西,他们也会受到限制。 I wrote an article on the Cloud Endpoint Rate limit. Not sure that is the best product for this, maybe Apigee 可以更好地满足您的要求。

编辑

我想在第一段中说的是“使用云 运行 和任何其他网络技术是不可能的”。