php - 为什么 REGISTER_GLOBALS 这么糟糕?

标签 php register-globals

我不是 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/

相关文章:

php - 使代码在 register_globals 关闭的情况下工作

php - 在 foreach 循环中使用 cURL (php)

php - 如何更改表中的每个电子邮件值

php - 自 php 5.4 起链接不起作用

php 通过 .htaccess 注册全局变量开/关

php - 查找需要 register_globals 的 PHP 脚本

php - 如何从重复字段中仅选择一个

php - 回显数组按键 : Url and Caption

php - Paypal IPN 模拟器返回 "INVALID"但我已遵守规则

php - $_POST 和关联数组中的可变变量