2018/08/13)追記:現在のPHPでは$_SERVER[‘PHP_SELF’]はクエリ文字列(?以降のクエリパラメータ)を含みません。PHP_SELFと同様の変数は以下です。$_SERVER[‘PATH_INFO’]$_SERVER[‘PATH_TRANSLATED’]時々見かけるのでブログでも問題を指摘します。PHPの$_SERVER配列に入っているPHP_SELF要素はPATHINFOも含めてしまうため、そのまま出力するとXSSに脆弱になる場合があります。</script>等と書けないようになっています。.'">aaa</a>';?>の様なケースの場合、http://example.com/xss.php/%22%20onMouseOver=%22javascript:alert(‘xss’);等としてJavaScriptの挿入が可能になります。SCRIPT_NAMEにはPATH情報が無いのでこの問題は発生しません。PHP_SELFでは無くSCRIPT_NAMEを使用すべき所をPHP_SELFを利用しているケースは時々見かけます。注意が必要かもしれませんね。紹介エレクトロニック・サービス・イニシアチブのWebシステムのコンサルタントのブログです。PHPの開発、PHP4.x/5.xレガシーPHPセキュリティパッチサービスなどを行っています。ブログのサブタイトルを「書かない日記」としているのは、ブログを始めた時にあまり書かないつもりで始めたのでこのサブタイトルになっています。yohgaki@ohgaki.net私が記述したブログ中のコードは記載が無い場合はMITライセンスです。その他のコードは参考リンクなどのライセンス情報を参照ください。