【Web】XSS
脆弱性
・発生個所
Webアプリケーション上でHTML、Javascriptを生成している箇所
・影響を受けるページ
Webアプリケーション全体
攻撃手法
クッキー値の盗み出し
・外部からJavascriptを注入することで、クッキーにセットされたセッションIDが読み出せる
・脆弱な検索ページの利用者が罠を閲覧すると、XSSの仕掛けにより、セッションIDが攻撃者にメールされる
その他Javascriptによる攻撃
・XSSを悪用したワーム
・最近はAjaxの流行により、JavascriptからWebアプリケーションの様々な機能を呼び出すためのプログラム(API)が用意されているWebサイトが増加している。APIは攻撃に悪用することも可能なので、XSSとJavascriptの組み合わせによる攻撃がしやすくなっている。
画面の書き換え
・form要素のaction属性を罠サイトのURLに変更
・XSS攻撃は常にJavascriptを使うとは限らない
対策
必須対策(個別対策)
・HTMLの要素内容…htmlspecialchars関数によりエスケープ
・属性値…htmlspecialchars関数によりエスケープしてダブルクォートで囲む
必須対策(共通対策)
・HTTPレスポンスに文字エンコーディングを明示する
保険的対策
・X-XSS-Protection レスポンスヘッダの使用
・入力値検証
・クッキーにHttpOnly属性を付与
・TRACEメソッドの無効化
役立つ情報源
参考: