出力エンコーディング

出力エンコーディングとは、ひとことで言えば、アプリケーションがデータを画面・HTML・JSON・SQLなどのコンテキストに出力する際、そのコンテキストで特殊な意味を持つ文字を無害化するセキュリティ対策です。たとえば、HTML出力時には「<」を「&lt;」に変換し、JavaScript出力時には別のエスケープルールを適用します。XSS攻撃の最も効果的な対策であり、入力検証だけでは不十分とされる理由がここにあります。重要なのは「出力先のコンテキストに応じた」エンコーディングを適用することで、汎用的なエスケープでは防げない場合があります。OWASPはコンテキスト別のエンコーディングライブラリ利用を推奨しています。