
我想將用戶上傳到我的網路應用程式的文件託管在谷歌雲端儲存桶中...問題是我需要向公眾開放權限,因為我還需要在文件轉到某些頁面時檢索這些文件。
這顯然是一個很大的安全風險,因為即使我在文件路徑中使用 uid 命名文件(即...“attachments/user_id/some_other_id/individual_file_uid/NameOfFile”),攻擊者也可以導航到並https://www.googleapis.com/storage/v1/b/my_bucket/o/attachments
列出取出該可公開存取的儲存桶中的所有目錄和檔案。但為了透過<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 或使用基於身分的存取控制。
如何透過網域限制這些文件的存取?
你不能。此功能不屬於 Cloud Storage。請參閱我之前的評論以獲取更多資訊。
您唯一的選擇(考慮安全性)是使用簽名 URL。