您现在的位置是:首页 > 极限百科 > register_globals(了解register_globals)
register_globals(了解register_globals)
jk943人已围观日期:2023-05-24 11:02:05
register_globals(了解register_globals)很多人对这个问题比较感兴趣,这里,极限生活记小编 jk就给大家详细解答一下。
register_globals(了解register_globals)
了解register_globals
什么是register_globals?
register_globals是一个早期PHP配置选项,它为全局变量设置了一个开关,让您可以轻松地将Web表单中的变量自动转换为全局PHP变量。也就是说,当开启了register_globals时,您可以直接使用表单名作为变量名在脚本中访问表单中的元素值。
问题与风险
register_globals在其早期版本中是默认开启的,这似乎是一个方便的开箱即用的功能。但是,register_globals在实现上有一些安全漏洞和缺陷,这可能导致严重的安全风险和数据损失。例如,register_globals使得$_REQUEST、$_GET、$_POST、$_SESSION和$_COOKIE等数组中的任何变量都可以自动转换为全局变量,并且没有任何过滤和检查机制,这可能导致以下问题:
- 全局变量引入攻击(register_globals攻击);
- 对敏感信息的意外修改(包括用户密码,安全cookie等);
- 完全依赖表单输入(不安全的消毒)
如何避免register_globals风险
避免register_globals风险的最好方式是关闭它。您可以在PHP配置文件php.ini中将register_globals选项设置为Off。如果您不具备改变PHP配置选项的权限,则可以在脚本中设置以下代码:
``` if (ini_get('register_globals')) { foreach ($_REQUEST as $key => $value) { unset($GLOBALS[$key]); } } ```上述代码将循环遍历超全局变量$_REQUEST中的所有键和值。在每个循环中,代码将使用unset语句将该键从$GLOBALS数组中删除。通过执行上述代码,您可以确保register_globals不会自动将任何变量转换为全局变量。
结论
register_globals在早期PHP版本中是顺机的,但是由于它的安全漏洞和缺陷,我们建议关闭register_globals选项以减少风险。如果您无法关闭register_globals,则应在脚本中使用上述代码来手动消毒超全局变量。通过正确的消毒方法,我们可以确保表单中的数据有效、安全,并且不会由于register_globals漏洞导致意外数据损失。
关于register_globals(了解register_globals) jk就先为大家讲解到这里了,关于这个问题想必你现在心中已有答案了吧,希望可以帮助到你。
相关文章
- register_globals(了解register_globals)
- ppt怎么加音乐(如何让PPT更生动:添加音乐)
- pointless(Exploring the Meaninglessness of Life)
- pegatron(Pegatron:台湾最大的电子代工公司)
- pdf打印机软件(PDF转换器软件的使用指南)
- particular注册码(Particular软件注册码)
- parameters(Understanding Parameters in Computer Science)
- offsetwidth(了解offsetWidth属性的使用方法)
- off-road(Exploring the Great Outdoors A Guide to Off-Road Adventures)
- netframework40(探究NET Framework 40的新特性)
热门排行
最新文章
-
register_globals(了解register_globals)
-
ppt怎么加音乐(如何让PPT更生动:添加音乐)
-
pointless(Exploring the Meaninglessness of Life)
-
pegatron(Pegatron:台湾最大的电子代工公司)
-
pdf打印机软件(PDF转换器软件的使用指南)
-
particular注册码(Particular软件注册码)
-
parameters(Understanding Parameters in Computer Science)
-
offsetwidth(了解offsetWidth属性的使用方法)
-
off-road(Exploring the Great Outdoors A Guide to Off-Road Adventures)
-
netframework40(探究NET Framework 40的新特性)