为什么Superglobals打开这么糟糕?

时间:2013-02-24 15:29:16

标签: php superglobals

我通过搜索栏搜索了Stack Overflow,并且只有4个帖子说明这些是打开的坏事。

没有充分理由说明原因?

所以我发布这个问题以找出以下内容:

  1. 为什么这些坏事要做?他们打开你的服务器有什么风险?

  2. 为什么PHP中的超级全球仍然是这样的退缩?

  3. 它们可以用于什么?

2 个答案:

答案 0 :(得分:3)

Superglobals 不是不好,而且始终已开启。没有它们,您将无法访问$_GET$_POST等内容。

我怀疑你在谈论Register Globals,它在PHP 5.3中被弃用,在PHP 5.4中被删除。他们毫无疑问是坏事。它们允许任何人在您的代码中实例化任意全局变量。有很多关于它们为什么不好的信息,包括它们在文档中的页面。

答案 1 :(得分:1)

register_globals所有自己都不是问题。

这是以下的组合:

  • 执行全局范围内的所有代码

  • 永远不要初始化变量

  • 然后从外部输入(register_globals)发生随机变量。

可悲的是,这是常见的情况以及如何在PHP3 / PHP4时代使用它们。这就是为什么过度概括的模因“register_globals是坏的”实际上是正确的。

你可以在启用它们的情况下编写完善的代码,但这是一个不必要的陷阱。