MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

檔案同源政策 (Same-origin policy for file: URIs)

在 Gecko 1.8 之前,任兩份檔案都會被視為同源(same-origin),換句話說本機端的任一份HTML檔可以讀取任一份檔案。

自 Gacko 1.9 起,檔案讀取檔案開始受到限制:唯有當主檔案父資料夾是被讀取檔案的祖先資料夾 (ancestor directory) 的情況之下,檔案讀取才會被允許,但資料夾載入並非以此規範。

舉例來說,我們從 index.html 進入同一層資料夾的另一個 foo.html 檔,而這個 foo.html 檔想要讀取 bar.html 檔,只有當 bar.html 存放於 index.html 所在資料夾或是 index.html 所在資料夾底下的子資料夾中,foo.html 才能讀取 bar.html。

檔案同源政策會影響到包括 XMLHttpRequest, XSLT, 與 XBL 等同源政策的檢查。

至於跨 window 的 DOM 存取,基本上各檔案都被視為不同源,除了以下例外:若是檔案 B 被另一個檔案 A 載入(例如透過 iframe 或 window.open()),而檔案 A、B 遵照此份檔案同源政策可以被判定屬於同源,那麼當發生跨 window 的 DOM 存取時,也可以視為同源。

比如說 /home/user/subdir/foo.html 是一個 frameset,而它下嵌了 另一個 /home/user/subdir/subdir2/bar.html 的 frame, 那麼 foo.html 和 bar.html 可以視為同源,但如果 bar.html 的位置變成 /home/user/bar.html,那麼 foo.html 和 bar.html 便不可以視為同源。

另外當使用者想要關閉這些檔案同源政策檢查,可以變更 security.fileuri.strict_origin_policy 偏好設定為從預設 true 到 false。

文件標籤與貢獻者

 此頁面的貢獻者: foxbrush
 最近更新: foxbrush,