ikepyonのだめ人間日記

セキュリティに関することを書いていく予定。

何故かあたり前にならない文字エンコーディングバリデーション

http://blog.ohgaki.net/char_encoding_must_be_validated
まあ、当たり前にはならないでしょう。どう考えても不正な文字エンコーディングを受け付ける言語やらフレームワーク、DB、ブラウザが悪いと思う。不正な文字エンコーディングをチェックするというのはバッドノウハウだと思うし。そんなことに対応するのは大変すぎるからねぇ。
アプリ開発者を啓蒙するより、PHPとか直したほうが早いと思うんだけど。
XSSSQLインジェクションが発生しないようにエスケープ処理やバインド機能を使うというのは、プログラムの基本に立ち返って、どんなデータが渡されても正確に処理を実行するために必要なことなので、当たり前といえると思う。
でも、不正な文字エンコーディングのチェックはプログラミング手法ではなく、それを受け取って変に解釈してしまうDBやらブラウザなどが直せないからしょうがなくやることなので、まずはそっちを直せと声を大にしていうべきなんじゃないかなぁ。
それをやっているのでしょうけど、まずは直すように回りから声を出してというべきなんじゃ?

(追記)
そういえば、ご自身の記事で「セキュリティやエラー処理など細かい部分の解説は理解の妨げになるため,敢えて省略しています。」なんて言ってるよなぁ。一応、次の記事で追加しているけど、検索でサンプルコードを探しているような人はそこまで読まないと思う。2つ目の記事のコードを書いておいて「ここはこういう風に書くことをおまじないとして覚えておいてください。後で説明します」で言いと思うんだけど。「やってみせ、言ってきかせて、させてみて、誉めてやらねば人は動かじ」だと思うんだけどなぁ。