Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
脚本名称在PHP中有多危险?_Php - Fatal编程技术网

脚本名称在PHP中有多危险?

脚本名称在PHP中有多危险?,php,Php,我在我的php博客网站上使用了下面这一行,这有什么危险吗 <form action="<?php echo $SCRIPT_NAME. "?id=" . $validentry; ?>" method="post"> 我已经关闭了“全球注册”和“魔法报价”gpc。 我使用的是PHP5.2。 我尝试了$\u SERVER['php\u self'],但没有成功。我认为这在PHP5.2中不起作用,除非您自己定义了$SCRIPT\u NAME。 在本例中,正确的代码应该是$\

我在我的php博客网站上使用了下面这一行,这有什么危险吗

<form action="<?php echo $SCRIPT_NAME. "?id=" . $validentry; ?>" method="post">
我已经关闭了“全球注册”和“魔法报价”gpc。 我使用的是PHP5.2。
我尝试了$\u SERVER['php\u self'],但没有成功。

我认为这在PHP5.2中不起作用,除非您自己定义了$SCRIPT\u NAME。 在本例中,正确的代码应该是$\u SERVER['SCRIPT\u FILENAME']。 脚本\u文件名不可由用户控制。
$\u服务器['PHP\u SELF']是用户可控制的。

我认为这在PHP5.2中不起作用,除非您自己定义了$SCRIPT\u NAME。 在本例中,正确的代码应该是$\u SERVER['SCRIPT\u FILENAME']。 脚本\u文件名不可由用户控制。
$\u服务器['PHP\u SELF']是用户可控制的。

这似乎不会造成任何危险,但它表明您有register\u globals,如果您不十分小心,它可能会有危险。在配置文件中将register_globals设置为Off,并使用$_SERVER['SCRIPT_NAME']或最好是$_SERVER['PHP_SELF'],另请参见,以及:

$\u服务器[脚本\u名称]=> /admin/products.php虚拟路径 $\u服务器[PHP\u SELF]=> /admin/products.php/someExtraStuff 虚拟路径

脚本名称在CGI 1.1中定义 规范,PHP_SELF由 PHP本身。看见 用于测试


这似乎并不构成任何危险,但它表明,如果你不是真的很小心的话,你有可能是危险的。在配置文件中将register_globals设置为Off,并使用$_SERVER['SCRIPT_NAME']或最好是$_SERVER['PHP_SELF'],另请参见,以及:

$\u服务器[脚本\u名称]=> /admin/products.php虚拟路径 $\u服务器[PHP\u SELF]=> /admin/products.php/someExtraStuff 虚拟路径

脚本名称在CGI 1.1中定义 规范,PHP_SELF由 PHP本身。看见 用于测试

SCRIPT_NAME和PHP_SELF大多包含相同的值。两者都包含请求URI的Web服务器规范化版本,即删除的相对路径部分

这里的实际安全问题不是使用。如前所述,只需使用正确的键大小写即可输出PHP_SELF:

SCRIPT_NAME和PHP_SELF大多包含相同的值。两者都包含请求URI的Web服务器规范化版本,即删除的相对路径部分

这里的实际安全问题不是使用。如前所述,只需使用正确的键大小写即可输出PHP_SELF:


此答案更适合作为注释,因为它不是原始问题的答案…$\u服务器['SCRIPT\u NAME']在CGI SAPI中定义。此答案更适合作为注释,因为它不是原始问题的答案…$\u服务器['SCRIPT\u NAME']在CGI SAPI中定义。$\u服务器['php\u self']因为你用小写字母写了密钥,所以不起作用。$validentry来自哪里?如果它是用户提供的输入,或者来自数据库而没有验证其内容,则需要对其进行urlencode$_服务器['php_self']无法工作,因为您使用小写形式编写了密钥。$validentry来自何处?如果它是用户提供的输入,或者来自数据库而未验证内容,则需要对其进行URL编码
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"], ENT_QUOTES, "utf-8") . $validentry ...