我不是 PHP 开发人员,但我在一些地方看到人们似乎将其视为瘟疫之类的。为什么?
最佳答案
REGISTER_GLOBALS
意味着所有通过 GET 或 POST 传递的变量都可以作为脚本中的全局变量。由于访问未声明的变量在 PHP 中不是错误(这是警告),因此它可能导致非常糟糕的情况。考虑一下,例如:
<?php
// $debug = true;
if ($debug) {
echo "query: $query\n";
}
这本身并不是一件坏事(精心设计的代码不应该产生警告,因此不应该访问任何可能未声明的变量(并且不应该需要 REGISTER_GLOBALS
出于同样的原因)),但是 PHP 代码通常 [非常] 低质量,导致这种安全漏洞。
关于php - 为什么 REGISTER_GLOBALS 这么糟糕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1417373/