由第三方提供的跨來源資源通常沒有足夠的 CORP 標頭。如果無需憑證就能請求,現在您只要將這類憑證標示為授權,即可啟用跨來源隔離功能。
我們已推出新的跨來源嵌入政策 (COEP) 值
credentialless
,可讓瀏覽器載入跨來源資源,
不使用跨來源資源政策 (CORP),也就是傳送不含
憑證,例如 Cookie這有助於開發人員採用跨來源架構
以便更輕鬆地隔離
為何需要跨來源隔離
某些網路 API 會增加旁路攻擊的風險,例如:
Spectre。目的地:
降低這項風險,瀏覽器提供了名為「選擇性」的獨立環境,
跨來源隔離。跨來源
獨立狀態,網頁可以使用特殊權限功能,包括
SharedArrayBuffer
、
performance.measureUserAgentSpecificMemory()
。
和更高畫質的高精確度計時器
以及區隔來源,除非他們選擇接收。
網頁必須傳送兩個 HTTP 標頭,才能啟用跨來源隔離功能:
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin
在跨來源隔離狀態時,必須提供所有跨來源資源
並設定要載入的 Cross-Origin-Resource-Policy
標頭。
啟用跨來源隔離的挑戰
跨來源隔離可提高網頁安全性,且 以便部署強大功能 就須滿足下列需求,才能為所有跨源源啟用 CORS 或 CORP 再複習一下,機構節點 是所有 Google Cloud Platform 資源的根節點瀏覽器不會載入沒有這些標頭的資源。 跨來源隔離頁面
這些跨來源資源通常是由可能會取得這類資源的第三方提供 難以加入必要的標題
不過,如果我們知道資源是否安全,足以載入內容呢?事實上 有風險的資源會要求取得憑證 可能包含攻擊者無法在其網站上載入的機密資訊 這代表不必憑證就能要求的資源 而且可以安全載入
距離救援時間:credentialless
這時 COEP: credentialless
就能派上用場。credentialless
是新的值
,以供 Cross-Origin-Embedder-Policy
標頭使用。和 require-corp
類似,這個引數可設為
啟用跨來源隔離,但不需要使用 CORP:cross-origin
沒有對等的跨來源要求標頭時,則會改為傳送,但不傳送
憑證 (例如 Cookie)。
您將可以改用 下列兩個標頭:
Cross-Origin-Embedder-Policy: credentialless
Cross-Origin-Opener-Policy: same-origin
這表示所請求的跨來源伺服器無法針對 機密資源,要求者隨時可以假設 包含公開資訊。
這也與瀏覽器逐步淘汰第三方 Cookie 的計畫。
示範
您可以在此示範中試用多種標頭選項: https://cross-origin-isolation.glitch.me
常見問題
我可以在 credentialless
環境下傳送憑證要求嗎?
當然,如果將要求的模式移轉至需要 CORS 檢查
回應。針對 <audio>
、<img>
、<link>
、<script>
等 HTML 標記,
和 <video>
,只要明確附加 crossorigin="use-credentials"
即可
以便瀏覽器傳送憑證要求
舉例來說,即使 https://www.example.com
上的文件
Cross-Origin-Embedder-Policy: credentialless
個標頭,<img
src="https://images.example.com/avatar.png" crossorigin="use-credentials">
會
傳送憑證要求。
如果是 fetch()
API,則可使用 request.mode = 'cors'
。
向 COEP: credentialless
提供,COEP: require-corp
對我的網站仍然有幫助嗎?
COEP: require-corp
不需要手動將要求模式切換為
如果某些跨來源子資源需要 Cookie,則為 CORS。
我還可以在 credentialless
環境下載入沒有特殊標頭的跨來源 iframe 嗎?
否。載入 credentialless
環境下的跨來源 iframe 仍需與 require-corp
相同的條件。iframe 文件必須包含兩個標頭:
Cross-Origin-Embedder-Policy: credentialless
(或require-corp
)Cross-Origin-Resource-Policy: cross-origin
好消息是,請繼續討論,瞭解如何藉由讓 iframe crossorigin="anonymous"
在沒有標頭的情況下載入跨來源 iframe。
如此便能在沒有標頭的情況下載入跨來源 iframe
憑證
其他瀏覽器也會採用這項功能嗎?
- Firefox 追蹤問題
- Webkit 位置要求:沒有訊號
- W3C TAG 請求: 待處理
後續步驟
我們即將推出兩項額外更新,以因應 跨來源隔離:
註冊參加 Chrome 來源試用以延長 SharedArrayBuffer 變更的使用者, 這些障礙或許會知道何時會終止。我們最初 先前宣布將在 Chrome 96 版中終止,但我們決定 並延後到 Chrome 106
資源
- 讓網站「跨來源隔離」使用 COOP 和 COEP
- 為何需要「跨來源隔離」提供多種強大功能
- 跨來源隔離的啟用指南
- Android Chrome 88 和電腦版 Chrome 92 中的 SharedArrayBuffer 更新
相片來源:Martin Adams 為 停用