同源政策
外觀
此條目可參照英語維基百科相應條目來擴充。 |
同源政策(英語:Same-origin policy)是指在Web瀏覽器中,允許某個網頁指令碼訪問另一個網頁的數據,但前提是這兩個網頁必須有相同的URI、主機名和埠號,一旦兩個網站滿足上述條件,這兩個網站就被認定為具有相同來源。此策略可防止某個網頁上的惡意指令碼通過該頁面的文件物件模型訪問另一網頁上的敏感數據。
同源政策對Web應用程式具有特殊意義,因為Web應用程式廣泛依賴於HTTP cookie[1]來維持用戶對談,所以必須將不相關網站嚴格分隔,以防止遺失數據洩露。
值得注意的是同源政策僅適用於指令碼,這意味着某網站可以通過相應的HTML標籤[2]訪問不同來源網站上的圖像、CSS和動態載入指令碼等資源。而跨站請求偽造就是利用同源政策不適用於HTML標籤的缺陷。
相同來源網站舉例
[編輯]下表列出哪些URL與URL http://www.example.com/dir/page.html 屬於相同來源:
URL | 結果 | 原因 |
---|---|---|
http://www.example.com/dir/page2.html | 是 | 只有路徑不同 |
http://www.example.com/dir2/other.html | 是 | 只有路徑不同 |
http://username:password@www.example.com/dir2/other.html | 是 | 只有路徑不同 |
http://www.example.com:81/dir/other.html | 否 | 不同埠(若未標明,http:// 默認埠號為80) |
https://www.example.com/dir/other.html[失效連結] | 否 | 不同協定(https和http) |
http://en.example.com/dir/other.html | 否 | 不同域名 |
http://example.com/dir/other.html | 否 | 不同域名(需要完全匹配) |
http://v2.www.example.com/dir/other.html | 否 | 不同域名(需要完全匹配) |
另見
[編輯]參考文獻
[編輯]- ^ Kemp, John. Security on the Web. 2011-02-04 [2018-07-24]. (原始內容存檔於2020-09-23).
The same-origin policy states that a document from one unique origin may only load resources from the origin from which the document was loaded. In particular this applies to XMLHttpRequest calls made from within a document. Images, CSS and dynamically-loaded scripts are not subject to same-origin policy.
外部連結
[編輯]- 相同來源策略的幾種風格的詳細比較(頁面存檔備份,存於互聯網檔案館)
- A review of deficiencies in same-origin policies and their implication for web security,存檔於互聯網檔案館(存檔日期 February 11, 2007)
- 樣本供應商提供的同源政策規範 (頁面存檔備份,存於互聯網檔案館)
- HTML5規範的來源定義 (頁面存檔備份,存於互聯網檔案館)
- W3C關於同一原產地政策的文章(頁面存檔備份,存於互聯網檔案館)
- RFC 6454 on The Web Origin Concept (頁面存檔備份,存於互聯網檔案館)
- 網誌文章:Cookie相同來源政策 (頁面存檔備份,存於互聯網檔案館)
- 用於內容安全政策的wordpress.org外掛程式 (頁面存檔備份,存於互聯網檔案館)