В чем преимущество использования супер-глобального `$ _SERVER ` в PHP?

В чем преимущество использования супер-глобального $_SERVER['PHP_SELF'] ?

    $_SERVER['PHP_SELF'] не включает (или не должен) включать имя домена. Он включает в себя компонент пути URL-адреса, из которого был вызван сценарий.

    Его использование заключается прежде всего в том, чтобы внедрять уязвимости межсайтового скриптинга.

    вы можете использовать его для заполнения атрибута action тега формы:

     <form method="post" action="<?=$_SERVER['PHP_SELF']?>"></form> 

    Если я затем позвоню на вашу страницу:

     your-file-that-uses-php-self.php/("><script>eval-javascript-here</script>) 

    где все в parens urlencoded, тогда я могу ввести код на вашу страницу. Если я отправлю эту ссылку кому-то еще, я выполняю этот код в своем браузере с вашего сайта.

    Изменить: Чтобы htmlspecialchars его от атак XSS, используйте htmlspecialchars :

     <form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">...</form> 

    Редактирование 2: Поскольку эта переменная $_SERVER так часто использовалась в примерах в интернатах, не пропустите чтение вашей ссылки HTML: поскольку этот URI является минимальным возможным относительным URI, вы можете просто оставить атрибут действия пустым:

     <form action="" method="post" >...</form>