2013-08-26 36 views
0

Amazon S3提供了一種基於每個存儲桶啓用CORS支持的方法。但是,默認情況下,CORS被禁用。啓用CORS的風險?

我想不出爲啓用S3存儲桶啓用通配符CORS所帶來的單一安全風險,但推測至少存在一些危險,否則他們只能啓用它,並且不會提供這些精確的規則準確地確定哪些域要信任。

有人可以描述一個利用或其他原因,爲什麼我不想在我所有的桶上設置<AllowedOrigin>*</AllowedOrigin>

回答

0

Wikipedia

Access-Control-Allow-Origin: *

這通常是不恰當的。唯一適用 的情況是,當頁面或API響應完全被認爲是公開內容時,並且任何人都可以訪問它,其中包括任何網站上的任何代碼。

下面是一個例子,你將需要使用CORS但是你應該避免使用通配符:你存儲你需要使用AJAX的應用程序(託管在另一個URL)來訪問S3上的內容,但你不不希望將該內容公開給其他網站(例如,存儲應用程序數據的HTML或JSON文件,其中這些文件不應從其他網站提供)。

還有其他一些場景,例如使用AJAX從其他站點將內容上傳到您的S3存儲桶的可能性。

+0

但是,爲了避免這種風險,數據必須是公開訪問的,如果風險是其他人將託管數據,我將對此收取費用,S3已經提供了「aws:Referer」方法阻止其他域名。 – Bob

+0

是的,數據需要公開。如果你的數據都不公開(它總是需要認證),那麼CORS通配符並不是真正的問題。如果有人可以在您的存儲桶中上傳數據,則可能會造成更多的損失,而不僅僅是產生額外的費用,具體取決於您的應用程序的工作方式(如XSS攻擊)使用「aws:Referer」來限制訪問不會在所有情況下爲您提供100%的保護,但另一方面,Access-Control-Allow-Origin也不會僅僅是一個額外的保護層。 – dcro