自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Chrome:將禁用修改document.domain以放寬同源策略

系統(tǒng) 瀏覽器
Chrome未來將禁用修改document.domain,如果你的網站依賴于設置document.domain 來解決跨域的問題,那么你可能需要注意了。

你好,我是tiantian。

幾天前,Chrome developer 博客發(fā)布了這么一篇文章:

大致意思是,Chrome未來將禁用修改document.domain,如果你的網站依賴于設置document.domain 來解決跨域的問題,那么你可能需要注意了。

而且Chrome計劃從 Chrome 101 開始使 document.domain 不可變,也就是說如果你是依賴于這種方式放寬同源策略的話,你的站點可能受到影響。

domain

根據MDN的定義如下:

Document接口domain屬性獲取/設置當前文檔的原始域部分,常常用于同源策略。

要了解有關設置document.domain 的安全含義的更多信息,請閱讀 MDN :

https://developer.mozilla.org/zh-CN/docs/Web/API/Document/domain#setter

同源策略:保證一個網頁不能訪問(修改或提取數據)另一個頁面,除非這些頁面托管在同一源上。為了解決很多跨域間的通信問題,許多的網站會通過設置document.domain來達到目的。

例如,user1.example.com 和 user2.example.com之間是不能相互訪問的,為了實現這種跨域訪問,通過將 document.domain 設置為其公共域后綴,它們可以相互授予訪問權限。

使用率

跨域的方案有很多種,使用這種方式來放寬同源策略的,有多少站點呢?

在 2020-12-01 HTTP Archive 語料庫中,我們看到 7038 個頁面(在 7,849,064 中:0.09%)的行為受到 document.domain 的影響。

比如阿里巴巴在 *.alibaba.com 域(即 https://baominhjsc.trustpass.alibaba.com/)上運行店面,這些域依賴 document.domain 與來自 onetalk.alibaba.com 的域進行通信。

再比如qq.com 有大約 110 個子域,它們依賴于 document.domain 與 apps.game.qq.com 等框架通信登錄狀態(tài)。

所以對于我們開發(fā)人員來說,未來真的禁用了document.domain,我們應該怎么做呢?

新的提案

Origin-Agent-Cluster http 標頭(規(guī)范) 允許頁面請求被源(而不是站點)隔離。如果設置為 true ( Origin-Agent-Cluster: ?1 ),則要求瀏覽器按來源隔離頁面。如果為假,則按站點。(Agent Cluster 是隔離組的規(guī)范。由于低級隔離在 API 層不可見,規(guī)范只是粗略地觸及主題。)

詳細的解讀:

  • Origin-Agent-Cluster: 標頭在存在時將繼續(xù)像當前一樣工作。當標頭不存在時,將更改的是默認值。
  • 當頁面分配給 document.domain 但未設置 Origin-Agent-Cluster: ?0 標頭時,我們將實施控制臺警告。

所以未來有這么一種可能:通過 document.domain 放寬同源策略的唯一方法是發(fā)送一個 Origin-Agent-Cluster: ?0 標頭。

可能還有一個比較疑惑的問題,誰需要設置 Origin-Agent-Cluster 標頭?

個人覺得,任何一個希望設置 document.domain 來達到跨域通信的頁面,都需要通過發(fā)送 Origin-Agent-Cluster: ?0 來選擇加入該功能。

瀏覽器兼容性

對于這項工作的開放,The Origin specification 規(guī)范聲明該功能應該被刪除

主要意思是強調避免使用 document.domain,它會破壞了同源策略提供的安全保護。出于這些安全隱患,此功能正在從 Web 平臺中刪除。(這是一個漫長的過程,需要很多年。)

WebKit 表示他們對棄用 document.domain 持適度的積極態(tài)度。需要圍觀他們的討論,可以閱讀以下:

https://github.com/w3ctag/design-reviews/issues/564#issuecomment-768450217

小結

未來是否會禁用document.domain這種方式來放寬同源策略,這個過程應該很漫長。對于開發(fā)人員來說,我們可以通過設置 Origin-Agent-Cluster http 標頭來過渡。至于最后的方案如何,我們值得期待。

參考

https://developer.mozilla.org/zh-CN/docs/Web/API/Document/domain#setter

https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy

https://developer.chrome.com/blog/immutable-document-domain/

https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage

https://github.com/mikewest/deprecating-document-domain/

https://github.com/mikewest/deprecating-document-domain/

https://github.com/mikewest/deprecating-document-domain/blob/main/2020-12-document-domain-usage.csv

https://html.spec.whatwg.org/multipage/origin.html

https://github.com/w3ctag/design-reviews/issues/564#issuecomment-768450217

 

責任編輯:姜華 來源: 天天Up
相關推薦

2015-12-16 11:24:16

2018-09-29 15:15:40

ChromeGoogle瀏覽器

2013-09-27 15:25:52

FirefoxChromeIE

2020-06-22 13:39:00

Chrome谷歌瀏覽器

2013-11-18 13:50:39

GoogleChromePDF

2013-11-08 09:15:39

ChromeWindows

2009-02-24 17:19:38

2021-03-10 13:07:12

Chrome瀏覽器漏洞

2011-07-21 11:12:56

Windows組策略U盤

2021-05-11 09:07:18

Chrome瀏覽器HTML標簽

2023-02-22 09:07:32

微軟AI

2021-04-06 06:10:24

谷歌Chrome 瀏覽器

2021-07-27 09:16:24

谷歌Chrome 瀏覽器

2021-07-05 12:44:31

ChromeHTTPS-Only模Google

2023-01-10 14:49:21

Chrome瀏覽器

2021-05-10 06:58:41

ChromeFlash版本號

2021-01-21 05:51:52

Chrome FlashWindows

2011-07-21 17:31:51

本地組策略Windows Vis

2011-06-23 10:24:27

Chrome 14

2021-05-09 19:41:35

JavaScript 前端同源通信
點贊
收藏

51CTO技術棧公眾號