我已經閱讀了一些有關同源策略和CORS的文章,但仍然不能很好地理解它爲用戶帶來的安全性。與CORS相同的原始策略的用處
同源策略提供了真正有價值的安全措施,防止源自某個網站訪問另一個網站上的某些網頁內容。從而防止由容器腳本訪問iframe內容的威脅,可能是僞造/釣魚網站。
但是AJAX和CORS來了。 CORS賦予服務器控制哪些來源可以訪問它的能力。但是,最後,如果不允許,在標頭檢查之後,瀏覽器會停止請求。
所以,想象一下你得到一些惡意網站myphishing.com。您想通過AJAX請求向本網站顯示來自另一個受信任網站mybank.com的信息。這一個是由配置良好的CORS頭保護,只允許從mybank.com來源的請求。如果我的作者myphising.com,請通過代理將請求和響應中的標頭更改爲假客戶端瀏覽器和銀行服務器的代理,將所有請求轉發至mybank.com?這似乎可以改變一個mybank.com一個請求的起源頭,並更改CORS響應報頭,使瀏覽器認爲myphishing.com被允許發出請求。通過頭部檢查,你可以發送請求並獲得類似頭部替換技巧的響應。或許我完全誤導了我,但如果有人能告訴我我誤解了整件事情,我會很高興。
可能重複,但我沒有在這裏找到我的答案:What is the threat model for the same origin policy?。
好吧,所以CORS只對基於憑證安全的服務器很有用:HTTPS或cookie?我記得cookie也可以通過代理進行更改,所以不確定它是否足夠安全。而我的問題仍然有效:以同源策略與CORS確保信任安全性的方式? – PomCompot
相同來源策略在處理個性化數據時大多隻有價值。它阻止Mallory的網站提供Alice的瀏覽器JavaScript,從Alice的網站獲取Alice的數據並將其提供給Mallory。當鮑勃想要將數據(可以或不可以個性化)共享給其他站點時,CORS可以關閉同源策略。 – Quentin
我明白了。但是,如果Mallory通過自己的代理將所有來自Alice的請求都轉交給Bob,會怎樣呢?這是不可能的情況,或者CORS如何防止這種情況? – PomCompot