サニタイズ言うなキャンペーンについての記事メモ

そもそも何のせいで「エスケープ」しなければならないのか

サニタイズ」って言葉は、まるでプログラムが危険ゴミを見つけ出して一つ一つ取り除かなきゃいけないような印象を受ける。

ライブラリなどの下位層で全ての問題が解決出来ることが理想ですが、残念ながら現状はそうではありません。それぞれの層における責務と出来ること出来ないことを正しく認識し、対策を行う必要があります。

私の考え方。
「悪意のデータ云々」の前に、「データを正しく扱ってあげよう。」という一言に尽きます。
DB上の値をHTML内に表示したいなら、正しく扱ってあげれば良い*1し、
入力値をDBに保存してあげたいのであれば、入力した値を正しく扱ってあげればいい*2

時間があるときに詳しく書こうと思う。

*1:保存済みのデータはHTMLの一部としてそのまま使うことが出来ない

*2:入力値はデータであって、SQLの一部としてそのまま使うことが出来ない