コース目次 / 第4章

まとめ — 壁と、窓と、開けすぎ

SOP・CORSの基本・反射+資格情報の誤設定を畳みます。許可リストの原則を持って、セキュリティヘッダーとCSPのコースへ進みます。

第4章 / 全5章目安 約3分この章のゴール: SOP/CORSの要点を畳み、次のCSPコースへの道筋を持つ

同一オリジンポリシーという壁、CORS という窓、そして窓を開けすぎたときの穴。3つを、自分の 127.0.0.1 の2〜3オリジンで体感しました。

CORS・早見表

概念 一言
同一オリジンポリシー(SOP) 既定の壁。別オリジンのレスポンスをスクリプトに読ませない。ブラウザが強制
オリジン スキーム + ホスト + ポート。1つでも違えば別
Access-Control-Allow-Origin サーバが「このオリジンには読ませてよい」と出す許可
プリフライト(OPTIONS) 副作用のあるリクエストの下見。診断で読む価値大
反射 + Allow-Credentials: true 危険。任意サイトが認証済みデータを読める
ACAO: * 資格情報と併用不可。だから攻撃者は反射を狙う
直し 厳格な許可リスト。反射しない・* にしない

2つの誤解を、最後にもう一度潰します。①CORS はサーバを守るものではない(守るのは利用者。curl は無視する)。②CORS は SOP を破る攻撃ではない(SOP を緩める正規の仕組みで、危険なのは“緩めすぎ”)。この2つを押さえていれば、CORS の話は読み違えません。

一貫する原則、ふたたび

CORS の直しも、これまでと同じ「許可リスト」でした。オープンリダイレクトの行き先、パストラバーサルのパス、そして CORS のオリジン——どれも「危ないものを弾く」ではなく「信頼するものだけ許す」。前向きの許可リストは、攻撃者の無限の発想に後追いしないための、共通の芯です。

次の道 — セキュリティヘッダーと CSP

次は「セキュリティヘッダーと CSP」です。CORS も「ブラウザに守りを指示するヘッダー」の一つでしたが、その仲間にはもっといます。とくに CSP(Content-Security-Policy)——インジェクションのコースで「XSS の二枚目の壁」として触れたもの——を、この Tsumiki サイト自身が配信している本物の CSP を教材にして読み解きます。

このコースの実習も、相手は自分の 127.0.0.1 の複数オリジンだけでした(法と倫理)。CORS の誤設定は実在サービスでも「つい試したくなる」領域ですが、他人の API を無断で叩けば不正アクセスです。自作の2オリジンで、仕組みを体に入れます。

お疲れさまでした。あなたはもう、ブラウザの国境と、その越え方・開けすぎ方が見えています。

こうなっていればOK

この章で卒業です。

この章はまだ完了していません。