我通过搜索栏搜索了Stack Overflow,并且只有4个帖子说明这些是打开的坏事。
没有充分理由说明原因?
所以我发布这个问题以找出以下内容:
为什么这些坏事要做?他们打开你的服务器有什么风险?
为什么PHP中的超级全球仍然是这样的退缩?
它们可以用于什么?
答案 0 :(得分:3)
Superglobals 不是不好,而且始终已开启。没有它们,您将无法访问$_GET
或$_POST
等内容。
我怀疑你在谈论Register Globals,它在PHP 5.3中被弃用,在PHP 5.4中被删除。他们毫无疑问是坏事。它们允许任何人在您的代码中实例化任意全局变量。有很多关于它们为什么不好的信息,包括它们在文档中的页面。
答案 1 :(得分:1)
register_globals
所有自己都不是问题。
这是以下的组合:
执行全局范围内的所有代码
永远不要初始化变量
然后从外部输入(register_globals)发生随机变量。
可悲的是,这是常见的情况以及如何在PHP3 / PHP4时代使用它们。这就是为什么过度概括的模因“register_globals是坏的”实际上是正确的。
你可以在启用它们的情况下编写完善的代码,但这是一个不必要的陷阱。