ありがとう。また会おう。

ゆるいかんじで。かたのちからぬいて。やってます。

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:しつこいようですが、元ネタのマイコミの記事の方です