XHPはPHP拡張のオープンソース・ソフトウェア。PHPは習得コストが低く、反面機能は多数あることもあって多くの開発で用いられている。だがその手軽さもあってか、開発者のスキルによっては適切なエスケープ処理などがされておらず、セキュリティホールにつながりやすい欠点もある。

ピクチャ 345.png

XHPを使った書き方。なお筆者環境ではエラーになってしまった。

 

そんなPHPを多数の場面で使っているFacebookでも同様の問題があったのだろう。彼らはプログラマの教育だけではなく、システム面からも補助できるようにした。それがXHP、PHPの機能拡張(Extension)として提供されるソフトウェアだ。

XHPはベースはPHPの素のままに書くことができる。ただしHTMLタグをダブルクォートなどで囲まないのが特徴だ。そして{と}で$_POSTなどの変数が利用できる。そこでは自動的にエスケープ処理が行われるので安全に変数が利用できる仕組みだ。

ピクチャ 346.png

こちらは通る。通常のPHPエラーではエラーが出る。

 

XHPはちょっとしたテンプレート的な機能を追加してくれる。もちろん常にエスケープ処理を行っていれば問題はない。だがつい忘れてしまう、ダブルクォートで囲まれている中で使ったりすると見づらく、チェック漏れをしてしまうといった経験がある方は導入を検討してみると良さそうだ。

執筆時のバージョン

 1.3.7

 

facebook’s xhp at master - GitHub

 http://github.com/facebook/xhp