gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

データのサニタイズのタイミング

最近なんか話題に上ることが多いので。
まぁ異論各種あろうかと思いますがそのあたりは適宜コメントなりトラックバックなりでどうぞ。


私は「ぎりぎりまでデータはサニタイズしない」主義です。
何でかっていうとなによりも
・何に使うかによってサニタイズパターンが変わる
から。


HTML出力するのであれば<>とかは最大級の問題児でしょうし、一方でSQL(DB)出力するのであれば’を放置するのは「kill me」と叫んでいるのと同意です。
翻って。
HTML出力での’は…時々悪さしますが(valueアトリビュート値に埋め込むとか。んで、それが元々"ではなくて’で囲まれてるとき)、致命的であるとは限らず。
SQLで<>があっても、そこが’で囲まれた文字列内であれば別にどうということもなく。


なので、サニタイズのタイミングは「使う直前」に「ご利用目的に合わせて計画的に」行っています。
んで、そういう事情から、私のコード内において「あらゆるデータは汚染されている」はずです。
初めっからそういう前提であれば、案外ちゃんとできるもんです。


まぁ、そも出力はそれ用のクラス&メソッド作って「一本化」してあるのでどうせ捕捉もサニタイズも容易ではあるのですが。


教訓:関所は一箇所にまとめよう。