入力を受け取った時点でタグを取り除いていても、HTML に出力するときにはエスケープが必要である。
正答
○ 正しい
解説
正しい。「入口でタグを消したから出力はそのままでよい」はよくある誤解である。入力時にタグを取り除いても、属性値の中(" で閉じて on〜 属性を足す)や JavaScript の文字列の中、URL(javascript: で始まる値)のように、タグを使わずにスクリプトを動かせる出力先がある。また、データは API・CSV 取り込み・管理画面など入力フォーム以外の経路からも入るので、入口だけで防ぐことはできない。XSS 対策の基本は、HTML の本文・属性・JavaScript・URL といった出力先ごとに、出力する時点でエスケープすること。テンプレートエンジンの自動エスケープを切らずに使うのが確実。
参考: www.ipa.go.jp
この問題を含む セキュリティ のテストを制限時間つきで解く
セキュリティクイズへ