您的位置:首页 > 编程语言 > PHP开发

php变量覆盖漏洞

2014-05-23 13:43 639 查看


Php变量覆盖漏洞

Pw » php变量覆盖漏洞(http://itsafe.org/?p=835)

两种情况,第一种register_globals,第二种人为变量覆盖

1、register_globals的意思就是注册为全局变量,所以当On的时候,传递过来的值会被直接的注册为全局变量直接使用,而Off的时候,我们需要到特定的数组里去得到它。PHP4默认开启,PHP5以后默认关闭。

2、人为变量覆盖,如下代码:
<?php
foreach ($_GET as $key => $value) {
${$key} = $value;
}
echo $a;
?>


Get得到的数据$key和$value,关键第3行,${$key}用get传进来的$key做为新的变量,将get传进来的$value赋值给它。

如果传进参数http://itsafe.org/test.php?a=1 第3行回解析为$a=1。

知识点:可变变量,$$a、${$a} http://www.php.net/manual/zh/language.variables.variable.php
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: