はたしてPHP(PHP:Hypertext Preprocessor)は,「イイ言語」なのだろうか。PHPのプログラムを書いていて,そのように感じることがある。

 PHPについて少しだけ触れると,Webアプリケーションの作成に特化した言語で1995年に登場した。その後,バージョンアップが繰り返されて,現在ではバージョン5が主流となっている。またPHPは,なじみやすくプログラミング自体もそれほど難しくない。

 PHPのプログラミング経験がない人でも,Apache Friendsが提供するWebアプリケーション構築のためのパッケージ「XAMPP」を使えば,インストールするだけでPHPの実行環境は手に入り,Webサーバーを介さずにローカル・マシンのみでアプリケーションを作成してテストできる。個人プログラマだけではない。多くのWeb企業に採用実績があり,Yahoo!Japanや楽天などの大規模サイトでの運用も進んでいる。すでにPHPは,Webアプリケーションの分野において,時代を牽引するプログラミング言語といっても過言はない。個人でも企業でも手軽に利用できる言語として,PHPプログラマが増えているわけだ。

 C言語しか知らなかった私が,初めてPHPのプログラムを書いたのは2004年。当時はバージョン4だったと思う。最初は,「手軽で便利な言語」という印象を受けた。PerlのようにモジュールをインストールしなくてもWebアプリケーションが作れて,さらにヘルプが充実しており覚えやすかったからだ。基本的な文法などはC言語に似ているが,変数の決まりごとが緩いせいもあって,サクサクとプログラミングができた。まさにイイ言語だ。

セキュリティと仕様に四苦八苦

 「PHPは初心者でも学びやすい言語」と言われている。確かにC言語のように,変数型をいちいち宣言しなくてもよいし,Perlのようにモジュールをインストールする必要もない。私は,日経ソフトウエアの2007年12月号で,「やっぱりPHPがイイ!」の特集を担当したときも同様の記述をした。

 PHPで構築するアプリケーションはWebアプリケーションなので,作ったアプリケーションを日本中あるいは世界中から,Webブラウザを通して利用できる。しかし,不特定多数のだれからも使ってもらいやすいメリットと引き替えに,世界中の犯罪者から攻撃されてしまう恐れがあるというデメリットが生じることは仕方ない。

 ところが,ある米国の調査結果では,PHPで発見されたバグがほかの言語よりも多いというレポートがある。確かに何気なくWebサーフィンをしていても,脆弱性を含むWebサイトを見かけることがある。PHPで作られたWebサイトが多いように思える。拡張モジュールが多いため,バグが混入してしまう可能性が高くなるのは仕方のないことかもしれない。

 それでも一つのバグが見つかるたびに,悪意のあるコードをブラウザに送ってしまう「クロスサイト・スクリプティング(XSS)」や,データベースに送るSQL文に細工を施してデータを盗む「SQLインジェクション」を可能にするWebサイトが,いったいどれだけ放置されているか心配になってしまった。また,関数の命名規則が統一されていないことや,比較演算子は「===」と「==」を勘違いしやすく私を困らせた。しかしPHPは,そのようなものだと納得するしかない。この点はナンセンスだ。

 知ったように書いてはいるが,以前私の書いたPHPプログラムもセキュリティを考慮していなかった。今更ながら反省しているところである。このPHPの特集は私自身,安全なWebアプリケーションの構築と公開がどれほど重要になるかを再認識するのにいい機会だったと思う。

 PHPは,プログラミングを始めたばかりの人でも,Webアプリケーションが構築・公開できる点は確かに「イイ!」。ところが,セキュリティホールの有無や,変わった仕様に頭を使わせる点は「イイ?」のだろうか。もちろん,これからもPHPユーザーは増えていくだろう。今後は,ユーザーがわずらわしいことを考えずにプログラミングできるようなバージョンアップを期待したい。