PHP6移行で増える脆弱なWebアプリ

Security 7月 18, 2009
(Last Updated On: )

PHP6のリリースはまだまだ先の話なのですが、PHP6への移行で脆弱なWebアプリが大量に発生する可能性があります。

理由は2つ

– mb_check_encodingで全ての入力文字エンコーディングが正しいかチェックしていない
– PHP6のhtmlentities/htmlspecialcharにはマルチバイト文字チェックコードが削除される

PHPのコードを書いている人も自覚していないと思いますが、この影響はかなりあると考えられます。

近日中にgihyo.jpのセキュリティブログに詳しい情報を記述します。

追記:PHP5.3のコードを見てみたら、バックポートすべきではないのにバックポートされてました。つまり、PHP6がリリースされたらと言う問題ではなく、今ある問題になっています。一応、改修を提案するつもりですがどうなるか判りません。

追記2:結構、ページビューが多いですね。心配される方もいるかと思いますが、「Webアプリセキュリティ対策入門」やgihyo.jp等で書いているように、mb_check_encodingで文字エンコーディングチェックしていれば影響は受けません。

追記3: 前に読んだ時は斜め読みだったので、もう一度コードをよく見てみると一応必要そうなチェックは入っています。決めうちしているのは別の部分だったので対丈夫でしょう。

投稿者: yohgaki