コース目次 / 第0章
はじめに — オリジンという、ブラウザの国境
同一オリジンポリシーがブラウザの最も基本的な守りだと確認します。2オリジン構成で体感する方針を押さえ、法と倫理ゲートに同意します。
あなたがある銀行サイトを開いたまま、別のタブで見知らぬサイトを開いたとします。その見知らぬサイトの JavaScript が、銀行サイトのあなたのデータを勝手に読み出せたら——Web は一日も成り立ちません。それを防いでいるのが、ブラウザの最も基本的な守り、同一オリジンポリシー(SOP:Same-Origin Policy)です。
オリジンとは
まず言葉を固めます。
オリジン(origin)は、スキーム + ホスト + ポートの組です。
http://127.0.0.1:4000 と http://127.0.0.1:4001 は、ポートが違うので別オリジン。
https://example.com と http://example.com も、スキームが違うので別オリジン。
この3つのどれか1つでも違えば「別のオリジン」で、ブラウザは両者の間に国境を引きます。
同一オリジンポリシーは、この国境を越えて別オリジンのレスポンスの中身を、スクリプトが勝手に読むことを、既定で禁じます。この既定の禁止があるおかげで、悪意あるサイトを開いても、あなたが別タブで開いている銀行やメールのデータは守られます。
このコースの仕掛け — 2つのオリジン
法と倫理ゲート
手を動かす前に
このコースは攻撃の技術に触れます。実習してよい相手は、次の3つだけです。
- (a) 自分で作った練習用のやられ環境(このサイトが配る自作ターゲット)
- (b) あなた自身の許可された環境(自分の Thousand SKY・secret-notes-ctf など)
- (c) CTF 競技の中(規約の範囲で)
実在する第三者のシステムを許可なく触ることは、不正アクセス禁止法に触れます。 このゲートは、その線引きを毎回の入口で確かめるためのものです。詳しくは「セキュリティの法と倫理」へ。
SOP と、それを緩める CORS を体で理解するために、あなたの 127.0.0.1 に2つのオリジンを立てます。
被害者役の API(http://127.0.0.1:4000)——「あなたがログイン済みのサービス」に見立てます。秘密のデータを返します。
攻撃者役のサイト(http://127.0.0.1:4001)——「あなたがうっかり開いた悪意あるサイト」に見立てます。ここから 4000 のデータを盗もうとします。
どちらもあなたの PC の中だけで動きます(法と倫理)。実在の他人のサイトに向けることは一切しません。ポートを2つ使うだけで、ブラウザにとっては立派な「別オリジン同士」になります。
このコースの地図
CORS の効き目はブラウザが強制します(curl などは無視します)。だから、このコースのデモはブラウザで開いて確かめます。
| 章 | 学ぶこと |
|---|---|
| 第1章 | 同一オリジンポリシー — 国境を、実際に見る |
| 第2章 | CORS の基本 — サーバが国境に開ける「窓口」 |
| 第3章 | 誤設定の危うさ — 反射 + 資格情報が開ける穴 |
準備ができたら、次の章へ。まずは、SOP の国境が実際に働くところを見ます。
こうなっていればOK
卒業まであと4章です。
この章はまだ完了していません。
保存できませんでした(プライベートブラウズ中かもしれません)。この端末に進捗は残りませんが、先へは進めます。