Cross-Origin Read Blocking (CORB)
とは何か
怪しいCross-Originなリソース取得を検知するアルゴリズムで、Chromium系やSafariなどのWebブラウザにセキュリティ機構として組み込まれているもの。
(「怪しいCross-Originなリソース取得」として検知された結果、)
この機構が作動すると、取得されてたリソースは(200 Success
& レスポンスデータあり
であっても)JavaScirptからはあたかも空レスポンスだったかのように見えてしまう。
(= CORBを回避しない限りレスポンスデータを読めない、使えない、予期せぬ情報漏えいからデータを保護できる)
目的(なぜ必要か)
異なるOriginをまたいだ(Cross-Originな)リソース取得は、(様々な攻撃手段によって)予期せぬ情報漏えいなどの脅威につながる。
これらの脅威からユーザを保護するためのセキュリティ機構として、CORBが一部ブラウザに実装された。(その後Fetch Standardに取り込まれた。)
防げるセキュリティ上の脅威
- (Spectreを含む)サイドチャネル攻撃
- クロスサイト・スクリプト・インクルージョン(XSSI: Cross-Site Script Inclusion)
CORBによりレスポンスがブロックされるとどうなるのか
- レスポンスボディが空に置き換えられる
- レスポンスヘッダが削除される(何が返ってきたかわからなくなる)
CORBが作動した際に起こるエラー
Google Chrome
コンソール上に以下のwarnが出力される
Cross-Origin Read Blocking (CORB) blocked cross-origin response https://www.example.com/example.html with MIME type text/html. See https://www.chromestatus.com/feature/5629709824032768 for more details.
Chrome 66 以下の古いver.の場合
Blocked current origin from receiving cross-site document at https://www.example.com/example.html with MIME type text/html.