我想在 Google 云存储桶中托管用户上传到我的网络应用程序的文件...问题是我需要向公众开放权限,因为当他们访问某些页面时我还需要检索这些文件。
这显然是一个很大的安全风险,因为即使我在文件路径中使用 uid 来命名文件(即...“attachments/user_id/some_other_id/individual_file_uid/NameOfFile”),攻击者也可以导航到该文件,https://www.googleapis.com/storage/v1/b/my_bucket/o/attachments
它会列出我在该可公开访问的存储桶中的所有目录和文件。但为了通过标签将这些文件包含在我的 Web 应用程序中<img/>
,我不知道还有其他方法可以在不妨碍的情况下限制对这些文件的访问img src
。
我唯一能想到的办法就是通过单个域名限制对这些文件的获取。例如...如果我的 Web 应用程序托管在 application.example.com 上,我会限制这些文件只能由 application.example.com 访问。我在这里找到了一些东西:https://cloud.google.com/resource-manager/docs/organization-policy/restricting-domains但我认为它不是在谈论通过域名限制访问,而是通过组织域限制访问。
所以我想我的问题实际上有两个方面:
- 我是不是看错了?有没有更好的方法可以安全地存储这些图像,同时还能被我的 Web 应用程序访问?
- 我如何通过域名限制这些文件的访问?
答案1
我是不是看错了?有没有更好的方法可以安全地存储这些图像,同时还能被我的 Web 应用程序访问?
是的,就您提供的文档链接而言,您的看法是错误的。
您无法通过 DNS 域名限制或授予对 Cloud Storage 的访问权限。您可以公开 Cloud Storage 存储桶、使用签名 URL 允许访问、使用 Cloud SDK API 或使用基于身份的访问控制。
我如何通过域名限制这些文件的访问?
你不能。此功能不属于云存储。请参阅我之前的评论以了解更多信息。
您唯一的选择(考虑安全性)是使用签名 URL。