当register_globals打开之后,就能轻松地使用可能注入了来自HTML表单的值的变量。
无论如何,此脚本的缺点在于,如果打开register_globals,它就不具备安全性了。
但它们也依赖于各种其他位于页面的…部分的JavaScript全局脚本。
这些或许应该小心的封装到一个类里,但为了简单的起见在代码里它们仅定义作为全局变量。
GLOBALS是印度成长最快的IT企业之一,西方人对它既钦佩又害怕。
事实上,这并不完全正确,因为您可以有使用过的全局。
每个属性都返回Globals对象,该对象的成员使您可以存储、检索、枚举和可选择保持数据。
如果register_globals为打开状态,则这两种情形都是由用户将变量设置为任意值引起的。
其一,当然是关闭register_globals。
如果Globals对象与IDE关联,则值保持在两个位置中的一个。
接下来的步骤是定义与“(Globals)”部分中的表单相关的全局对象。
在Debug窗口中可以查看所有全局环境变量、PHP全局变量和每个Web请求的参数。
track_vars和register_globals配置选项影响到会话变量是怎样存储和恢复的。
我希望在我的余生里,再也不要听到这个词“registerglobals”(注册全局变量)。
注:如果这个特性在您的系统上不起作用,请查看php.ini文件,确保register_globals=On。
审计代码的教训:设法关闭register_globals。
这些根参考本质上是全局的。用来存储被称为根堆(rootstacks)的数据结构。
一个受欢迎的特性就是,不同于Bamboo中的全局变量,创建Plan变量并不需要管理员权限。
如果启用了register_globals,则每个全局变量都能被注册为会话变量。
当register_globals打开以后,各种变量都被注入代码,例如来自HTML表单的请求变量。
Globals是一家帮助学校处理信息的公司,其老板SuhasGopinath认为,一个牢靠的身份识别系统,也会对学校有所帮助。
Globals类从不会在设计时初始化,但是控件实例是由设计器创建的。
当然,单纯地关闭register_globals并不代表所有的代码都安全了。
出于安全及性能原因,建议禁用register_globals。
Globals保持解决方案变量,而Globals保持项目变量。
相关信息请阅读安全一章中的使用register_globals。