ディレクトリ チャンネル vol.29
■ 入力値をそのまま出力してしまう「エコーバック問題」 エコーバック問題は、Webアプリケーションが入力パラメータの値をそのまま出力してしまうことで、Webブラウザやキャッシュ設備などにセキュリティ侵害が生じるもの。XSSが代表例だ。そのほか、CR/LFでHTTPヘッダを不正に改ざんしてレスポンスを分割する「HTTPレスポンス分割攻撃」もここに含まれる。 XSSの予防的実装例としては、「HTMLコンテンツに入力値をそのまま出力しない」「出力される特殊記号を加工あるいは抑制する」ことが有効。加えて「比較的安全なタグ属性」「タグのURL属性」「タグのstyle属性、イベントハンドラ属性、scriptタグの内側」の3種類の文脈に応じた対策を心がけるようにとしている。「特に後者の2種類が危険なタグ。最近は、Ajaxでscriptタグの内側にIDを埋め込むこともあるが、これは聞いただけで緊張感の増す実装なのである」(同氏)。
