register_globals(register_globals怎么样)
一、register_globals介绍
1. 概念: register_globals 是一个PHP的系统变量,用于开启或禁用在PHP中自动创建全局变量的功能,当它被打开时,任何一个变量在 PHP 程序中可以以全局变量的形式被使用或访问到。
2. 取值:register_globals 的值可以为 “On” 或 “Off”,默认为 “Off”。
3. 使用情况:在 PHP4 中,默认已经开启了 register_globals,但在 PHP5 中默认是关闭的。注:不建议使用register_globals的开启功能,它增加了应用程序的安全隐患,安全性有很大的提升。
二、register_globals 功能
1. 全局报告:register_globals 自动创建 PHP 中用户提交信息(例如表单数据或 URL 参数)的全局变量,被创建的变量名与用户传递信息相同。
2. 不受限制: 如果 register_globals 被开启,程序或脚本可以访问在任何地方都可以使用的全局变量,而这些变量本身无需明确声明即可使用,进而给予了性能方面的提升。
3. 安全风险:register_globals 容易会带来安全风险,它可以被恶意用户利用执行恶意程序,甚至破坏整个系统的安全结构。因为全局变量也可以被用户修改,外部的攻击者可以不被检测到的修改注册记录,发现未被限制的变量等。
因此,开启 register_globals 功能后,应首先执行适当的安全检查,确保数据的安全性。
1、register_globals是一个PHP的非常重要的全局变量,是PHP语言的一个预定义的全局变量,它可以安全地保存在各个功能模块中,所以它可以在任何地方使用;
2、在PHP中,register_globals默认是不启用的,只有在php.ini文件中设置register_globals为On时,该变量才会被激活;
3、如果register_globals被激活,该变量会将用户提交的数据,如:GET,POST,COOKIE等变量,当做全局变量挂在$GLOBALS数组下,这将给攻击者带来巨大的安全隐患;
4、register_globals最大的危险在于,它会让用户以URL参数提交数据,而这种数据一般都存在于数据库中,所以注册全局变量可能会给攻击者提供一个很容易攻击数据库的途径;
5、因此在PHP程序开发中,尽量避免使用register_globals变量,并且要加以适当的安全控制,及时地更新脚本,以使网站的安全性得以提高;
6、另外,需要特别注意的是,在PHP 5.2.0及以后的版本中,register_globals已被禁止使用,强制禁止的措施来确保PHP的安全性;
7、在开发新网站时,要检查操作环境中的register_globals是否被启用,如果已启用,则要立即修改并禁用它,以确保网站安全;
8、对于一些老系统,如果不能即时更新版本,则需要采取特殊措施进行保护,尽量保护服务器的安全,防止动态参数的泄露。





