クロスサイトスクリプティング - Server

クロスサイトスクリプティングとは

Webサイトの脆弱性を利用し、HTMLに悪質なスクリプトを埋め込む攻撃方法。

攻撃による発生しうる脅威

  • 本物サイト上に偽のページが表示される
  • ブラウザが保存している Cookie を取得される
  • 任意の Cookie をブラウザに保存させられる

対策方法

HTML テキストの入力を許可しない場合

  • ウェブページに出力する全ての要素に対して、エスケープ処理を施す。
  • URL を出力するときは、「http://」や 「https://」で始まる URL のみを許可する。
  • <script>...</script> 要素の内容を動的に生成しない。
  • スタイルシートを任意のサイトから取り込めるようにしない。
  • 入力値の内容チェックを行う。

HTML テキストの入力を許可する場合

  • 入力された HTML テキストから構文解析木を作成し、スクリプトを含まない必要な要素のみを抽出する
  • 入力された HTML テキストから、スクリプトに該当する文字列を排除する。

全てのウェブアプリケーションに共通の対策

  • HTTP レスポンスヘッダの Content-Type フィールドに文字コード(charset)を指定する。
  • Cookie 情報の漏えい対策として、発行する Cookie に HttpOnly 属性を加え、TRACE メソッドを無効化する。
  • クロスサイト・スクリプティングの潜在的な脆弱性対策として有効なブラウザの機能を有効にするレスポンスヘッダを返す。