今も新規開発され続けるPHP 4アプリケーション

この日記をご覧の方には先刻ご承知のことだろうが、去る7月13日に、PHP 4のEOL(End Of Life)アナウンスが公式に宣言された*1
これによると、PHP 4のメンテナンスは2007年12月31日まで、重大なセキュリティホールへの対応も2008年8月8日までとなっている。このため、既存の膨大なPHP 4アプリケーションのマイグレーションをどうするかは大きな課題である。

ここまでは皆さんご存知の情報であろう。

しかし、PHP 4アプリケーションは今も開発され続けている。私がそれを知ったのは、Webアプリケーションの脆弱性診断をしているからである。診断にてPHPなどの脆弱性を発見した場合はこれまでも都度報告していたが、2007年7月13日以降は、PHP 4を使っているだけでも、(脆弱性ではないが)上記情報を報告し、PHP 5への移行を推奨してきた。そういうレポートを書く際には、「きっと既存のWebサイトの診断なのだろう」と思っていた。しかし、現実はそうではなく、

PHP 4を利用した新規のWebアプリケーション開発

の方が多いのだ。きちんと統計をとったわけではないが、診断の対象となるPHPアプリケーションは、今でもPHP 4の場合がほとんどで、その多くは新規開発なのだ。

これは、どういうことだろう。Webアプリケーションの脆弱性診断(決して少ない出費ではない)を依頼するくらいだから、サイトオーナーはセキュリティにはある程度の意識を持っているはずだ。それにも関わらず、後1ヶ月ちょっとでメンテナンスが終了するPHP 4で新規開発されるWebアプリケーションは少なくないのだ。
その診断レポートには以下のような記述があることになる。

PHP 4は2007年12月31日でメンテナンスが、2008年8月8日で脆弱性対応が打ち切られます。できるだけ早期にPHP 5に移行することを推奨します。

できたてのほやほやのサイトに対して、上記のようなレポートをもらったオーナーの心理はいかばかりであろう。

ところで、セキュアなWebアプリケーションを開発するにあたって、IPAのセキュア・プログラミング講座Webアプリケーション編には、以下のような記述がある*2

開発基盤選定における考慮事項の例
(1) プログラミング言語の選択
1) 例えば、PHPを避ける

短時日で素早くサイトを立ち上げることのみに着目するのであれば、PHPは悪い処理系ではない。しかし、これまで多くの脆弱性を生んできた経緯があり、改善が進んでいるとはいえまだ十分堅固とは言えない。

この「例えば、PHPを避ける」というコピーは印象的で、発表と同時に大きな話題となった*3。しかし、PHPのセキュリティ問題としては、個別の脆弱性もさることながら、PHPのライフサイクルの問題もあるのではないだろうか。
PHPの特性を理解した上でPHPを活用すること自体は悪くないと思うのだが、PHPを選択する以上は、適切なバージョンの選択と、タイムリーなバージョンアップないしパッチ適用をする覚悟が必要なのだろう。それが出来ていないという現実がある。悪いのはPHPばかりではなく、使う側の問題もあるのではないだろうか。