PHP_SELFは使用しないでください。これは、である可能性もあります/index.php/"><script>alert(1)</script>/
。
XSS攻撃によく使用されます。
代わりにインデックスSCRIPT_NAMEを使用してください!SCRIPT_NAMEは、ユーザー入力ではなく、常に実際のPHPファイルを指します。
よろしく
編集:
2人の人が、mod_rewriteを使用するとSCRIPT_NAMEが機能しないことを指摘しています。これは誤りであり、これらの人々は回答を投票する前に読む必要があると思います。
これがあなたのためのテストシナリオです***:
$ cat .htaccess
RewriteEngine On
RewriteRule testme/ /testmenot.php
$ cat testmenot.php
<? echo $_SERVER['SCRIPT_NAME']; ?>
$ GET hostname/testme/
/testmenot.php
$_SERVER['REQUEST_URI']
は「/testme/」を保持しています。これは、これらの人々がSCRIPT_NAMEで期待していたと思います。しかし、それはPHP_SELFにもありません。
/ meが指を交差させる
:E