コース目次 / 第0章

はじめに — オリジンという、ブラウザの国境

同一オリジンポリシーがブラウザの最も基本的な守りだと確認します。2オリジン構成で体感する方針を押さえ、法と倫理ゲートに同意します。

第0章 / 全5章目安 約5分この章のゴール: オリジンの概念と、このコースを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章です。

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