一、变量覆盖
用我们的传参值替换程序原有的变量值。
1、常见场景
(1)$$使用不当
(2)extract()函数使用不当
(3)parse_str()函数使用不当
(4)import_request_variables()使用不当
2、函数解析
(1)extract()
将数组中变量导入当前符号表中。把数组中键和值分开,键是变量名,值是变量值。
(2)parse_str()
将查询字符串解析到变量中
(3)$$
$a =1;
$b =2;
echo $$a;
输出的结果是2.
常见的$$利用存在变量覆盖的代码:
<?php
$a = 1;
foreach(array('_COOKIE','_POST','_GET')as $_request)
{
foreach($$_request as $_key=>$_value)
{
$$_key=addslasheds($_value);
}
}
echo $a;
?>
遍历cookie,post,get,传入request中,利用$$_request把键值分离,最后把值用魔术引号处理,赋予$$_key