水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > 入力時に文字参照に変換するのがよろしくない理由

入力時に文字参照に変換するのがよろしくない理由

2007年9月2日(日曜日)

入力時に文字参照に変換するのがよろしくない理由

Twitterのクロスサイト・スクリプティング(XSS)対策は変だ (www.tokumaru.org)」。文字参照に変換した状態で DB に格納しているというのは、けっこう良くある話だろうと思います。この手のエスケープしすぎによる化けは、twitter に限らず、よく見かけますので……。

※HTML のエスケープに限らず、入力欄に \ を入れて検索すると \\ に化けて、検索ボタンを押すたびに \ が増殖していくという面白いシステムも良くありますね。

一昔前のフリーの掲示板 CGI などでは、フォームの値を読み取るところで < → &lt; " → &quot; のように文字参照に変換してしまうのが一般的でした。この手のアプリケーションは、

という条件を満たしているので、そのような処理をしてもあまり問題にならないのだと思います。これは小規模なフリー CGI だからこそ成立していた作法です。規模が大きくなってくると、以下のような問題が顕在化してきます。

どれも頑張れば対応できるのですが、頑張らないで出力時に考えた方が良いのではないかと。

関連する話題: セキュリティ / サニタイズ言うな