2015-10-14 71 views
1

我在S3上存儲用戶圖像,默認情況下是可讀的。如何防止在S3上暴力破解文件下載?

我需要直接從網絡訪問圖像。

但是,我想阻止黑客強制URL和下載我的圖像。

例如,我的S3圖像URL是在http://s3.aws.com/test.png

他們可以蠻力測試並下載所有的內容?

我無法將我的存儲桶中的項目設置爲專用,因爲我需要直接從Web訪問。

任何想法如何預防它?

+0

第一個建議是沒有可預測的文件名... –

+0

迴應@RowlandShaw所說的,你可以嘗試使用諸如UUID之類的東西作爲文件名。 –

+0

@mbaird,但這並不能防止暴力強制。他們至少可以獲得100萬次嘗試。 – moeseth

回答

4

使用高安全性不會影響您「直接從Web訪問」的能力。如果使用適當的權限,則可以從Web訪問Amazon S3中的所有內容。

默認情況下,Amazon S3中的所有內容都是私有的。

權限來訪問內容就可以被分配在幾個方面:

  • 直接的對象上(例如,使物體「公共」)
  • 通過一個桶政策(如許可證如果從特定範圍的IP地址訪問,則在一天中的特定時間訪問子目錄,但只能通過HTTPS訪問)
  • 通過分配給的策略IAM用戶 (這需要用戶在訪問亞馬遜S3時驗證)
  • 通過有時間限制的Pre-signed URL

最有趣的是預簽名URL。這是一個計算的 URL,允許在有限的時間內訪問Amazon S3對象。應用程序可以生成預先簽名的URL並將該鏈接包含在網頁中(例如,作爲<img>標記的一部分)。這樣,您的應用程序將確定用戶是否被允許訪問對象,並且可以限制該鏈接工作的持續時間。

1

您應該保持內容的安全,並使用Pre-signed URLs僅允許訪問您的網站的授權訪問者。您必須編寫一些代碼才能使其工作,但它很安全。