引言

‌register_globals是PHP中的一个配置选项,用于控制全局变量的自动注册。‌

register_globals启用时,PHP会将通过GETPOSTCOOKIE请求传递的参数自动注册为全局变量,使得这些参数可以直接在脚本中使用,而无需使用超全局数组。

意味着,如果是攻击者传入POST变量或者地址栏直接输入参数,可以轻易覆盖你的任何默认变量名,就很危险!

范围

PHP 5.3之前,register_globals默认开启;

PHP 5.3开始,该选项被废弃,并在PHP 5.4及更高版本中被完全移除‌

我目前在使用的PHP 5.4.45PHP 7.2.9已经完全没有这个选项了。

方式一:从配置文件关闭配置

register_globals可以在php.ini文件中设置

其配置范围包括PHP_INI_USERPHP_INI_PERDIRPHP_INI_SYSTEMPHP_INI_ALL‌

设置register_globals = off

方式二:从代码里检测关闭

if (ini_get('register_globals') == true) die("禁止开启选项");

欢迎关注拓行公众号,分享各种技术博客文章

拓行——奋勇进取,开拓未来,砥砺前行

最后修改:2025 年 02 月 04 日
如果您对各种技术博客文章感兴趣,欢迎关注拓行公众号,分享各种专业技术知识~