コース目次 / 第4章
まとめ — 壁と、窓と、開けすぎ
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
この章で卒業です。
この章はまだ完了していません。
保存できませんでした(プライベートブラウズ中かもしれません)。この端末に進捗は残りませんが、先へは進めます。