Same-Originポリシー勉強メモ
gihyoサイトの「ここが危ない!Web2.0のセキュリティ」連載の第2回:「Same-Originポリシーと迂回技術」の勉強メモです。
定義
他のドメインのサイトへはリクエストを送信できない制限のことをSame-Originポリシーと呼びます。同じドメインであってもポート番号やプロトコル(HTTPとHTTPSなど)が異なれば,異なるサイト(クロスドメイン)とみなされアクセスできません。クロスドメインアクセスは機能として実装されていないのではなく,セキュリティ上の理由から禁止されているそうです。
必要性
俺があの黒の攻撃者とし、攻撃目標がユーザのメールアカウント情報だとします。もしクロスドメインにアクセスする制限がなければ、事前に用意したスクリプトで(urlをメールサーバに設定)メールアカウントの情報が取得できるようになってしまいます。(この辺りはCookieの話が出てきます)
ウェブの基本ルール
Ajaxだけではなく、フレームやサブウインドウの情報にアクセスする場合などにも存在する
クロスドメインでデータを取得する方法
* リバースPorxy
* SCRIPTタグ(JSONP)
* Flash
* 画像
* スタイルシート
リバースProxy
データ提供サーバにとってユーザの身元は隠れているため、攻撃者に利用しやすい
ユーザの身元を確認しようとすると、ユーザ情報を扱わなければならない
ユーザ情報-->サーバ-->データ提供サーバ