クロスドメインアクセス
前の記事:同一生成元ポリシー
前の記事にあるように、javascriptは同一生成元ポリシーによりクロスドメインのアクセスが厳しく制限されている。
この記事ではブラウザでクロスドメインアクセスが許可されているものについて説明する。
frame要素,iframe要素
farme、iframe要素はクロスドメインのアクセスができる。
X-Frame-OptionsヘッダというHTTPレスポンスヘッダがあり、値としてDENYとSAMEORIGINがある。
DENYの場合、ページ内のフレームは表示されない。
SAMEORIGINの場合、フレーム内が外側のページと同一生成元であればフレームが表示される。
フレームを使用しない場合はDENYを、単一ホストでフレームを使用している場合はSAMEORIGINを指定することにより、クリックジャック攻撃を防ぎ安全性を高めることできる。
img要素
img属性はクロスドメインの指定が可能。
意図しないサイトに画像を張られるのを防ぐには、画像に対するRefererヘッダをチェックするという方法がある。
script要素
src属性を指定することで他のサイトのjavascriptを読み込むことができる。
サイトAのドキュメントがサイトBのjavascriptを読み込んだ場合、読み込まれたjavascriptはサイトAのドメインで動作する。
サイトBのjavascriptを読み込むときにサイトBに対するクッキーが送られるので、利用者の状態にサイトBが影響を受けてjavascriptが変化する場合がある。これによってJSONP(JSON with padding)を利用している場合に情報漏えいする可能性がある。よってJSONPで公開情報のみを提供するべきである。
CSS
過去に Internet Explorer はCSSXSSという脆弱性があった。
form要素
action属性でクロスドメインの指定が可能。
この仕様を悪用した攻撃がクロスサイト・リクエストフォージェリ(CSRF)攻撃である。ユーザの意図しないformを送信させられる。
参考文献:体系的に学ぶWEBアプリケーションの作り方 3.2 受動的攻撃と同一生成元ポリシー
体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践 徳丸 浩 ソフトバンククリエイティブ 2011-03-03 売り上げランキング : 4070 Amazonで詳しく見る by G-Tools |
« 同一生成元ポリシー | Main | PostgreSQLで時間の差を求める »
「プログラミング、技術情報」カテゴリの記事
- PHPStorm 2018.1.7 に更新(2018.12.09)
- 技術メモをQiitaに移行(2016.01.24)
- 正規表現メモ:ものぐさ(最小)マッチング(2015.11.29)
- BASE64にエンコード/デコードするバッチファイル(2015.11.23)
- Windows7の検索ボックスの検索条件指定(フォルダの除外など)(2015.08.16)
「セキュリティ」カテゴリの記事
- PHPメモ041:パスワードのSalt付きハッシュ値(2014.08.09)
- ファイルインクルード脆弱性(2014.05.18)
- ファイルダウンロードによるXSS その3(2014.03.27)
- ファイルダウンロードによるXSS その2(2014.03.23)
- ファイルダウンロードによるXSS その1(2014.02.24)
The comments to this entry are closed.
Comments