「CORP、COEB與CORP以及spectre attack」相關筆記

總結

在面試時遇到 CORS 概念題,故回顧了年初的筆記,並追加研究了一些 CORS fetching 相關的知識。 本篇會提到的內容:

結論:以上機制的終極目標都是為了確保資料安全(常見攻擊手法為 Meltdown 與 Spectre);阻擋可疑請求,但允許合理的非同源存取互動。

筆記

CORS (Cross-Origin Resource Sharing)

首先「同源政策(same-origin policy)」限制了不同源文件的互動性(出於安全理由,來源 B 的回應內容無法影響到來源 A 的內容),而 CORS 設定則允許了例外(可取得非同源之資源)。

CORS 是 HTTP header 的一種機制,根據不同的設定可以允許或禁止非同源的資源存取。基本上伺服器要先允許 CORS,瀏覽器才可取用非同源的資源。

CORS preflight:如果是會影響伺服器資料的 request(simple request以外的 request methods),瀏覽器在實際送出 request 前會先發出 preflight,待收到伺服器的允許後,才會真正發出這些 request。

Cross-Origin Resource Policy

設定在 response header 上,決定同、不同源的 request 是否能存取資源。

Cross-Origin-Embedder-Policy

設定在 response header 上,避免瀏覽器載入沒有設定為允許 CORS 或設定 CORP 的資源。

Cross-Origin Read Blocking

阻擋那些明顯不合理的請求,比如在imgscript標籤中請求 JSON 資料這種行為。

Site Isolation

Chrome 瀏覽器額外實作的安全機制,每個網站有其獨立的 process,降低被攻擊的可能性。

Meltdown, Spectre attack

處理器的安全漏洞,透過破壞應用程式之間的獨立性來推測、竊取內容。

參考文件