2014-09-26 104 views
0

是否正確,請求頭中沒有「Origin」的請求與受CORS保護的資源訪問控制 - 允許源設置爲特定的fqdn的請求是否接收到正確的200響應?CORS請求是否允許使用Origin?

我期待着一個錯誤,比如當Origin被設置爲一個不同的fqdn而不是被允許的錯誤時,它完美地工作。

+2

你觀察一個Web瀏覽器不發送的Origin標? CORS由瀏覽器強制執行。服務器可能會或可能不會注意Origin標頭。 – AgentME 2014-09-26 22:57:43

+0

不,我直接向瀏覽器的CORS保護的資源發出請求,如果我在header中指定了Origin,它會被阻止,但是如果我沒有指定Origin就可以工作,所以我想知道這是否正確。 – 2014-09-26 23:05:52

+2

您不能覆蓋CORS AJAX請求中的Origin標頭(除非服務器在Access-Control-Allow-Headers中指定Origin,這可能很奇怪,可能也是安全漏洞)。 Origin頭文件會自動由您的瀏覽器設置CORS請求。如果這不是你的問題所在,請包含一個代碼示例,因爲它不清楚發生了什麼。 – AgentME 2014-09-26 23:12:26

回答

0

CORS保護旨在防止使用您的證書在另一個網站上觸發一個網站的活動,例如, A.com上的腳本通過AJAX請求向B.com發佈數據。

如果站點觸發對不同域*的請求,Origin標頭將自動由瀏覽器設置(並且不能被重寫)。這是根據第二個站點上的'Access-Control-Allow-Origin'標頭進行檢查的。

如果您在瀏覽器中直接訪問B.com,那麼Origin將會是空白的,因爲您位於同一個站點:CORS不相關。手動設置Origin標題將模仿限制行爲,但CORS不是爲了保護用戶而設計的。

*某些類型的請求(例如加載圖像或腳本)沒有阻止CORS保護

相關問題