htmlspecialchars()とか、もろもろ。
とても激しいツッコミに惚れました<ぉぃ
http://d.hatena.ne.jp/gallu/20080702/p2
きっとこんな(元ネタの記事 http://journal.mycom.co.jp/articles/2008/06/25/flexigrid/002.html の方)プログラムが平然と掲載されるようだから、
非PHPな方々から、PHPはdisられるんだろうなぁ。。。とか思ったり。
で、記事を読んでいてちょっと思ったこと。
この記事にもリンクがはってある、htmlspecialcharsの正しい使い方、
htmlspecialcharsとhtmlenties関数はENT_QUOTESを指定しないとENT_COMPAT(セキュリティ上問題があるが互換性を維持)が指定された状態と同じ動作をします。
とあるんですが、「セキュリティ上問題があるが互換性を維持」しているのは何故なんでしょうね?
デフォルト ENT_COMPATなのを、ENT_QUOTESに仕様変更してまともに動かなくなるプログラムって、例があまり思い浮かびません。
てか、そんなプログラム死ねばいいのに(笑)・・・は言い過ぎ?
てゆ〜か、こんなのよりもっと激しく互換性のない変更が マイナーバージョンアップですらよくあるPHPなのに、なんでここだけ頑なにENT_COMPATがデフォルトなんでしょうね?
とっても謎です。。。
あと、こういう「ダメプログラム*1」を「さらす」まとめサイトとかあると役に立ちそうですよね。
ちょっと違うけど、「予告.in」みたいな感じで。
さしずめ「PHPのアンチパターン集」。
「こういうことをすると」「こういう攻撃をされるので」「正しくはこう実装しましょう」
みたいのを体系だててまとめればかなり役に立ちそうな気がする。
てか、思いついたヤツが作るべきだと思うんですが。
ここ2週間くらいはまじ時間とれないので・・・ほんとへたれで申し訳ない。。。
*1:しつこいようですが、元ネタのマイコミの記事の方です