前回までの2回でXPathクエリを非常に簡単に紹介してきました。今回はXPathインジェクションによる攻撃と対策を解説します。 基本的なXPathインジェクション まず前回で作成したauth.phpを利用したXPathインジェクションを行います。auth.phpはaccount.xmlに保存されたユーザ情報を参照し、コマンドラインから渡されたユーザ名とパスワードが一致するかチェックするプログラムです。 実行例 [yohgaki@dev tmp]$ php auth.php user1 password1 OK to login [yohgaki@dev tmp]$ php auth.php user1 password2 Not OK to login auth.phpは次のXPathクエリを実行し、ユーザ名とパスワードが一致したノードだけを抽出します。 $nodelist = $xpat