XSS

更新日:

用語解説

XSS(Cross-Site Scripting、クロスサイトスクリプティング)は、Webアプリケーションが信頼できない入力を安全に処理せず出力し、利用者のブラウザで攻撃者のスクリプト等をそのサイトの文脈で実行させる脆弱性・攻撃です。

■ 試験で押さえるポイント

  • 攻撃コードをサーバに保存する格納型、要求に含めて応答へ反射させる反射型、ブラウザ側のDOM操作だけで生じるDOM-based XSSがあります。

  • 利用者の画面やデータを読み、正規利用者として操作し、偽入力欄を表示できます。同一生成元の権限で動くため、単なる見た目の改ざんに限りません。

  • HTML本文、属性、URL、JavaScript等の出力先ごとに適切なエンコードを行い、安全なテンプレートとDOM APIを使い、危険なHTML生成を避けます。

  • CSPは多層防御、HttpOnlyはCookie読取りの抑制であり、根本対策の代替ではありません。入力検証だけで全ての出力文脈を安全にはできません。

■ 選択肢での判断ポイント

サーバのDBではなく、被害者のブラウザでサイトの権限を用いてスクリプトが動く点を見分けます。SQLインジェクションとは実行場所が異なります。

例: 掲示板の投稿をHTMLへそのまま埋め込むと、閲覧者全員で悪性処理が動く格納型XSSになります。投稿を文字列として文脈別にエンコードします。

同じ分野の用語