$ _SERVER的原因是什么[" PHP_SELF"]

时间:2015-03-31 12:19:17

标签: php

有没有人知道在PHP表单的操作中不使用同一页面的优点(或安全原因)。

所以这是指定为action的当前页面:

<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

这里也是通过PHP的超级全局

<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

1 个答案:

答案 0 :(得分:3)

出于安全原因,您不应以这种方式使用$_SERVER["PHP_SELF"]。这是因为您打印包含所有参数的完整路径到您的站点,并且您有XSS问题。

如果您想将表单发送到同一网站,可以非常简单地使用#

<form action="#" method="post">

或输入完整的文件名,以防止将所有参数添加到您的网站。

PHP_SELF and XSS

这是另一篇Post如何保护该部分。