FORSE SYSTEM

秋葉原UDX 実機ハンズオン

XSSの基礎

入力値の扱いとエスケープの必要性を確認するラボです。

ラボ概要

アジェンダ

  • XSS の基本概念
  • 反射型 XSS の確認
  • エスケープの考え方

ゴール

  • XSS が発生する条件を理解する
  • 入力値をそのまま出力する危険性を理解する
  • 対策の基本を確認する

反射型XSS

確認ポイント

URL パラメータの値がそのまま画面に出力されると、スクリプトが混入する可能性があります。

検索キーワードをそのまま HTML に埋め込むと、意図しないスクリプト実行につながります。

対策

  • HTML へ出力する前にエスケープする
  • テンプレートで安全な出力関数を使う

出力時のエスケープ

基本方針

ユーザ入力は信用せず、出力先に応じたエスケープを行います。

代表例

  • HTML テキスト
  • HTML 属性
  • JavaScript 文字列

補足

入力値の検証と、出力時のエスケープは役割が異なります。両方が必要です。