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

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

IPA「SSL/TLS 暗号設定 ガイドライン」を基にしたウェブサーバーの設定例

SSL/TLS暗号設定ガイドライン~安全なウェブサイトのために(暗号設定対策編)~:IPA 独立行政法人 情報処理推進機構 を参考にして、実際にウェブサーバーのSSL設定をどう書けばよいのか?をメモし …

セキュリティ

アプリケーションをインストールする際は、事前に実行ファイルのウイルスチェックを行っておきましょう

目次1. はじめに2. VirusTotal とは?3. VirusTotal(日本語ページ)を使う手順4. VirusTotal(英語ページ)を使う手順5. おわりに 1. はじめに 以下の状況にお …

Web

PKCS #12 形式の証明書ファイルに対するコマンド操作

PKCS #12 形式の証明書ファイルに対するコマンド操作について説明します。

PHP

Laravel 5 でのセキュリティ対策 (PHP)

目次1. ユーザーによる入力値の検証入力パラメータ値のエンコーディングが正しいことをチェックするMiddlewareの例制御文字を禁止するバリデーションルールを追加する例1. バリデーション用のクラス …

Web

ウェブブラウザのパスワード保存機能はサイトを限定して使う

目次1. はじめに2. ブラウザのパスワード保存機能利用方針(お勧め)3. ブラウザの設定と操作普段の設定一時的にパスワードを保存させる場合の操作4. おわりに 1. はじめに 最近のウェブブラウザに …