(如果沒有,它實際上提高客戶端的安全性?)關於客戶端安全性,CORS除了顛覆同源策略之外還有其他什麼嗎?
我想從哪兒服務器X的腳本使用XHR來獲取和運行從服務器Y(支持CORS)不受信任的代碼的情況。
(顯然不可信評估代碼是壞™)
(如果沒有,它實際上提高客戶端的安全性?)關於客戶端安全性,CORS除了顛覆同源策略之外還有其他什麼嗎?
我想從哪兒服務器X的腳本使用XHR來獲取和運行從服務器Y(支持CORS)不受信任的代碼的情況。
(顯然不可信評估代碼是壞™)
我不使用CORS在所有提高安全性。我使用CORS訪問不同域上的已知Web服務,如果沒有CORS,我將不會訪問它。在我看來,與提高安全性無關,而是允許將來自一個域的數據委託給另一個域。
CORS是不是硬化安全性,它是關於削弱它(但只有在從服務器允許一定條件下)。
如果您要訪問從另一臺服務器東西在一個AJAX請求,沒有CORS,你不能因「安全」(同源策略),那就是它的結束*。使用CORS,其他服務器可以授予權限以減少安全屏障。
*除了像JSONP黑客,但也需要從服務器
CORS許可顛覆了同源策略,但選擇如此。例如,一個銀行的網站域名就根本沒有設置CORS標題(保持全效同源),因爲沒有JavaScript的其他域中的下載,應使AJAX請求給銀行(或者也許他們僅允許他們信任的合作伙伴網站)。 CDN可能會設置Access-Control-Allow-Origin「*」,因爲它不關心從另一個域下載的JavaScript是否向CDN發出AJAX請求。
腳本本身不受跨域限制。例如,來自域X的腳本可以包含來自域Y的腳本,並執行代碼。這可以通過一個普通的腳本標籤來完成,沒有CORS。 – monsur 2011-06-05 16:22:46
我很清楚這一點,我不認爲它有助於回答這個問題 – adam77 2011-06-06 07:55:21