最新の投稿

HKU\.Defaultはデフォルトユーザのものではない。

HKU\.DEFAULT(HKEY_USERS\.DEFAULT)は、あちこちで間違った認識をされている。HKU\.DEFAULT(HKEY_USERS\.DEFAULT)は、デフォルトユーザとかテンプレートユーザと呼ばれるアカウント(=今後作成されるユーザアカウントの初期設定)...

2008/02/05

PHPでプログラムを書くな

Ruby開発者のまつもとゆきひろさんの日記より.
http://www.rubyist.net/~matz/20080126.html#p04
  • いろんなものがfalseだったりするせいで、新たな比較演算子「===」が必要
  • hashやlistがobjectが区別できない
  • オブジェクト指向機能が壊れている
  • lambda(無名関数)がない。create_functionはlambdaじゃない
  • short_open_tagsやらsafe_modeやらregister_globalsがonになってるかもしれない
  • 引数の順番がわかりにくい(in_arrayとかstrposとか)
  • strpos('abcd','a')は0を返すが、0は偽である
  • PHPで書かれたたくさんのアプリがあるがどれもHTMLとロジックが分離されてない(本当?)
  • 「PHPは初心者に学びやすい」と言われる。確かにそうかもしれないが、 おかげでどれだけのSQLインジェクションやらXSS脆弱性やら、 ひどいコードが放置されていることか
  • グローバル。使うんじゃないってば。

私自身, 今までセキュリティ業界でやってきてPHPで書かれたプログラムは
作り込みが甘い気がする.
セキュリティをちょっとでも知った人が書いたなら対処したであろうXSSが
放置されていることが多い.
PHPには詳しくないが, バージョンが変わるたびに言語使用が大きく変わり,
アップグレードしようにもアップグレードできなかったりする.

個人的感想で言えば, PHPは使うな.

関連
http://blog.livedoor.jp/dankogai/archives/50993137.html
http://mindblind.net/2008/01/24/attacking-php/
http://jimbojw.com/wiki/index.php?title=Defending_PHP
http://slashdot.jp/askslashdot/08/02/03/0022251.shtml
http://neta.ywcafe.net/000827.html

0 件のコメント: