Security

クロスサイト・スクリプティング対策 by IPA「安全なウェブサイトの作り方 第7版」

投稿日:2015年4月16日 更新日:

26393978455_30d3555bca_b

photo credit: XSS attack on YouTube via photopin (license)

安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構の、「クロスサイト・スクリプティング」から一部抜粋する。(この資料はPDFでしか提供されていない)

注意が必要なウェブサイトの特徴

運営主体やウェブサイトの性質を問わず、あらゆるサイトにおいて注意が必要な問題です。Cookie を利用してログインのセッション管理を行っているサイトや、フィッシング詐欺の攻撃ターゲットになりやすいページ(ログイン画面、個人情報の入力画面等)を持つサイトは、特に注意が必要です。

  • この脆弱性が生じやすいページの機能例
    • 入力内容を確認させる表示画面(会員登録、アンケート等)
    • 誤入力時の再入力を要求する画面で、前の入力内容を表示するとき ・ 検索結果の表示
    • エラー表示
    • コメントの反映(ブログ、掲示板等) 等

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

根本的解決

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

保険的対策

  • (v) 入力値の内容チェックを行う。

2) HTML テキストの入力を許可する場合の対策

根本的解決

  • (vi) 入力された HTML テキストから構文解析木を作成し、スクリプトを含まない必要な要素のみを抽出する

保険的対策

  • (vii) 入力されたHTMLテキストから、スクリプトに該当する文字列を排除する。

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

根本的解決

  • (viii) HTTP レスポンスヘッダの Content-Type フィールドに文字コード(charset)を 指定する。

保険的対策

  • (ix) Cookie情報の漏えい対策として、発行するCookieにHttpOnly属性を加え、 TRACE メソッドを無効化する。
  • (x) クロスサイト・スクリプティングの潜在的な脆弱性対策として有効なブラウザの機能を有効にするレスポンスヘッダを返す。
    • X-XSS-Protection
    • Content Security Policy

関連するCWE

参考URL

📂-Security
-

執筆者:labo


comment

メールアドレスが公開されることはありません。

関連記事

Web Security

XSS Auditor が有効になっているかチェックするためのページを作りました

目次1. XSS とは?2. XSS を防ぐためのブラウザの機能「XSS Auditor」3. Webブラウザの XSS Auditor 機能が有効かどうか調べる4. 参考 1. XSS とは? XS …

PHP

PHPで baseタグを出力する(RPO対策)

PHPで baseタグを出力する方法について 説明します。

Web Security

「秘密の質問」機能について

目次「秘密の質問」とは?「秘密の質問」をどう使えばよいのか?参考サイト 「秘密の質問」とは? 「秘密の質問」とは、「質問」とそれに対応する本人しか知らない「答え」を設定し、パスワードリマインダやインタ …

Webのセキュリティに役立つWebサービス

目次1. 特定のホスト(サーバー)について調査する2. あるウェブページが安全であるかチェックする3. 特定のWebサイトのSSL設定をチェックする4. 短縮URLの元のURLを取得する5. その他 …

no image

ウェブサイトの安全性向上のための取り組み – パスワードに関する対策 by IPA「安全なウェブサイトの作り方 第7版」

ウェブサイトの安全性向上のための取り組み – パスワードに関する対策 by IPA「安全なウェブサイトの作り方 第7版」 パスワードに関する対策 初期パスワードは、推測が困難な文字列で発行 …