Secure Steady
スクリプト注入攻撃 - XSS(クロスサイトスクリプティング) の使い方・オプション・サンプル

スクリプト注入攻撃 - XSS(クロスサイトスクリプティング)

悪意あるスクリプトを Web ページに注入する攻撃手法。反射型・格納型・DOM Based の 3 種類がある。

概念図

XSS(クロスサイトスクリプティング) diagram

XSS の 3 つの種類

  • 反射型(Reflected XSS)

    URL パラメータに含まれたスクリプトが、サーバーのレスポンスにそのまま反映されて実行される。フィッシングメールのリンク経由で悪用されることが多い。

  • 格納型(Stored XSS)

    データベースに保存された悪意あるスクリプトが、他のユーザーがページを閲覧した際に実行される。掲示板やコメント欄が狙われやすく、影響範囲が広い。

  • DOM Based XSS

    サーバーを経由せず、クライアントサイドの JavaScript が DOM を操作する際に発生する。innerHTMLdocument.write の不適切な使用が原因。

共通の対策

  • 出力時のエスケープ: HTML エンティティに変換する(<&lt; など)
  • Content Security Policy (CSP): インラインスクリプトの実行を禁止する
  • HttpOnly Cookie: JavaScript から Cookie にアクセスできなくする
  • フレームワークの自動エスケープ: React, Angular などは標準でエスケープする

関連トピック