我不确定这是否是预期的行为。但是,如果我在我的服务器上托管以下内容
<?php
print $stackoverflow;
?>
我还有另一个包含以下内容的example.html:
<form action="http://pinguincyb.org/roc/opdracht1/lawl.php" method="POST">
<input type="text" name="stackoverflow" value="example">
<input type="submit" value="Submit">
</form>
页面打印'示例',这是正常的行为吗?不应该没有这些数据,直到我会做像
这样的事情$stackoverflow = $_GET["stackoverflow"];
答案 0 :(得分:6)
这是旧的弃用功能PHP,名为register globals。甚至删除了。
你应该避免它。
的手册如果你拥有它,你必须禁用它。你可以在php.ini,.htaccess,httpd.conf或.user.ini中完成(自PHP 5.3起)
答案 1 :(得分:0)
此功能已旧并已弃用。避免使用它,因为它是不安全的
答案 2 :(得分:0)
关于安全。
事实上,对于编写良好的应用程序,无论此设置是打开还是关闭都无关紧要。
编写良好的应用程序必须在使用前定义所有变量。如果遵循此规则,则register_globals
不会造成任何伤害。
如果您有类似
的内容$admin = FALSE;
if (check_admin()) {
$admin = TRUE;
}
没有人能够成为愚蠢的管理员
/index.php?admin=1
即使register_globals已开启。
虽然无论如何都必须定义其他变量,只是为了程序的一致性。
这就是重点。