同源政策
外觀
此條目可參照英語維基百科相應條目來擴充。 |
同源策略(英語: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插件 (頁面存檔備份,存於網際網路檔案館)