文件隔離政策:輕鬆啟用強大的網頁功能

Camille Lamy
Camille Lamy

發布日期:2025 年 5 月 1 日

從 Chrome 137 開始,Document Isolation Policy 是項新功能,可讓crossOriginIsolation 更容易採用。與 COEP (Cross-Origin-Embedder-Policy) 不同,Document Isolation Policy 會套用至每個影格,且不會對子影格設下任何要求。啟用 crossOriginIsolation 後,文件隔離政策就能解鎖強大的網頁功能,例如 SharedArrayBuffersWebAssembly 執行緒

什麼是跨來源隔離?

跨來源隔離功能會在瀏覽器程序中,為文件及其同源相依項目劃定明確的界線。這可避免將文件分組,並與來自不同來源的文件共用資源或資訊。跨來源隔離功能可確保來源可在其自身程序中載入,無論底層瀏覽器引擎是否預設支援網站隔離或跨來源隔離。這有助於防範推測執行攻擊,例如 Spectre

什麼是「文件隔離」政策?

與 COOP (Cross-Origin-Opener-Policy) 和 COEP (Cross-Origin-Embedder-Policy) 相比,文件隔離政策提供了更簡單的crossOriginIsolation實作方式。這可讓您逐格隔離,因此不必嵌入 iframe 來支援 COEP。

文件隔離政策的運作方式

您可以使用「文件隔離政策」隔離網頁應用程式中的特定框架。透過與文件一併傳送 Document-Isolation-Policy 標頭,文件就能存取 SharedArrayBuffers 等強大功能,否則這些功能會因安全性考量而受到限制。與 COOPCOEP 不同,文件隔離政策不會限制文件可與哪些網頁通訊,也不會限制可嵌入的子框架。採用文件隔離政策的文件可以開啟跨來源彈出式視窗,並與這些彈出式視窗進行通訊。也能正常嵌入任何 iframe。

文件隔離政策與COEP 類似,有兩種模式:isolate-and-require-corpisolate-and-credentialless。這些模式會規範如何處理未使用跨源資源共享 (CORS) 載入的跨來源子資源。在 isolate-and-require-corp 模式中,跨來源資源必須使用 Cross-Origin-Resource-Policy 標頭明確宣告跨來源資源政策,否則會遭到封鎖。這可確保資源是經過同意才共用。相反地,isolate-and-credentialless 模式可在沒有 CORS 標頭的情況下載入跨來源資源,但會從要求中移除任何憑證 (例如 Cookie 或 HTTP 驗證),有效地將資源視為匿名資源。這個模式提供較不受限制,但仍安全的處理非 CORS 資源方式。

使用「Document Isolation Policy」隔離的 iframe 不會同步 DOM 存取未隔離的相同來源 iframe。不過,這些隔離的 iframe 仍可透過跨來源 Window 方法 (例如 postMessage) 與非隔離的框架進行通訊。此外,即使啟用隔離功能,這些 API 仍可保留對儲存空間 API 的完整存取權,讓您在相同來源中持續儲存及分享資料。