えといわゆる phpspotメソッド ですか?
元ネタは
http://d.hatena.ne.jp/gallu/20080702/p2
あたりから。
んと。今し方伺ったら。なんかこんな文章が入り込んでた。修正日不明(だって書いてないんだもん)。
※ 本サンプルはFlexigridの使用法を示すことに主眼を置いたものであり、セキュリティの観点からは不十分な点も存在するので注意していただきたい。具体的には、
- htmlspecialchars(trim($var))では、「'」(シングルクォート)がエスケープされない。htmlspecialchars(trim($var), ENT_QUOTES, 'UTF-8') と記述したほうが好ましい
- SQL文の組み立て時に、代入する文字列はmysql_real_escape_stringなどで必ずエスケープするべき
といった対処が必要である。さらにエスケープ処理だけに頼らず、なるべくホワイトリストを用意し、あらかじめ許可されたパラメータのみを通すようにコーディングしたたほうが良い。このあたりの詳細については、改めて解説する予定だ。
まぁ何もないよりはマシなのですが。
とりあえず。個人的には「htmlspecialcharsの引数くらい素直に訂正しようよ」とか「SQL文の組み立て時にエスケープ処理くらいやろうよ」とかなんとか。
「本サンプルはFlexigridの使用法を示すことに主眼を置いたものであり、セキュリティの観点からは不十分な点も存在するので注意していただきたい」はひとかけらたりとも言い訳にならないと思うなぁ正直。
別にエスケープ処理突っ込んだくらいでそんなに複雑怪奇な処理にはならないでしょっていうか本当にそこに主眼を置くならそもfunction sanitizeTagとか$postdata = sanitizeTag($_POST);とかだって不要なわけでしょ?
17:37追記。
そういや。mysql_real_escape_stringやるときに間違えて$postdata配列つかうと多分どえりゃぁ目にあえます。
そういう意味でも「$postdata = sanitizeTag($_POST)」って本気で邪魔なだけの処理だと思うなぁ。
なんていいますか。
クレームっていうか意見をドン無視こいていかにも「初めから間違えていませんでした」げに記事を直すあたり、とってもphpspotメソッドチックだなぁと思うのは私だけでしょうか?
似たようなケースを考えてみて。少なくとも、ZDNetさんはちゃんとごめんなさいを大きく書いていたし、あの辺はとても評価できる姿勢だと思うのですが。
っつか最低限「いついつに追記」とかなんとか書きません?
まぁさすがはマイコミさんってところですかね。