當前位置:
首頁 > 最新 > 【前端資訊】Site Isolation

【前端資訊】Site Isolation

從 v67 開始,Chrome 會默認啟用一個新的功能叫 Site Isolation。那什麼是 Site Isolation 呢?

Site Isolation

大家都知道傳統的瀏覽器都有同源策略,避免網站訪問彼此的數據。但是有些惡意網站仍然可以繞過這個策略來攻擊其他網站。Site Isolation 是瀏覽器提供的額外防線,使得上述的攻擊發生可能性大大地降低。Site Isolation 確保來自不同網站的網頁始終放入不同的進程中,每個進程都在沙箱中,沙箱限制了每個進程可以做什麼,並且 Site Isolation 還可以阻止進程從其他網站接收某些類型的敏感數據。

總結一下就是,Site Isolation 有效地使不受信任的網站更難訪問或竊取信息,它提供額外的保護,以防範各種類型的安全漏洞。

Cross-Origin Read Blocking(CORB)

雖然有同源策略,但網頁還是有可能載入跨域的數據,比如 img,比如 script。

上面這段代碼 balance.json 就會被載入到渲染進程的內存當中,攻擊者可能會利用像 Spectre 這樣的漏洞來讀取那塊內存。CORB 所做的事情就是在將 balance.json 載入進內存前先檢查它的 MIME 類型,上圖中 script 標籤中期望得到一個 .js 文件,所以 .json 文件就根本無法被載入進內存。

下面介紹下 CORB 的原理。

網頁載入的資源主要分為兩種:

數據資源(data resources),比如 HTML、XML、JSON 文檔;

媒體資源(media resources),比如圖片、JavaScript、CSS、字體。

當接收數據資源時,比如 HTML 文件,如果資源有個X-Content-Type-Options: nosniff頭部或者不在 CORS 白名單中的,都將被 CORB 禁止載入到進程中。後者比較好理解,不在 CORS 白名單里的那些數據資源肯定是沒有許可權的,那X-Content-Type-Options: nosniff是個啥意思呢?網頁載入的資源一般會有 Content-Type,代表資源的類型,但有時候 Content-Type 未定義或者是錯的,那麼瀏覽器就會啟動 MIME-sniffing 來猜測該資源的類型,這就給了攻擊者可乘之機,攻擊者可以讓原本應該解析為圖片的請求被解析為 JavaScript,而X-Content-Type-Options: nosniff就是告訴瀏覽器你不要瞎猜。如果數據資源沒有這個頭部,那麼 CORB 就會去根據數據的內容判斷類型。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FEPulse 的精彩文章:

TAG:FEPulse |