
一段来自discuz的PHP防注入代码,有一处不明白希望得到解释。
$magic_quotes_gpc=get_magic_quotes_gpc();@extract(daddslashes($_COOKIE));@extract(dad...
$magic_quotes_gpc = get_magic_quotes_gpc();
@extract(daddslashes($_COOKIE));
@extract(daddslashes($_POST));
@extract(daddslashes($_GET)); ///这几个extract是什么意思,为什么这样做?
if(!$magic_quotes_gpc) {
$_FILES = daddslashes($_FILES);
}
function daddslashes($string, $force = 0) {
if(!$GLOBALS['magic_quotes_gpc'] || $force) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = daddslashes($val, $force);
}
} else {
$string = addslashes($string);
}
}
return $string;
} 展开
@extract(daddslashes($_COOKIE));
@extract(daddslashes($_POST));
@extract(daddslashes($_GET)); ///这几个extract是什么意思,为什么这样做?
if(!$magic_quotes_gpc) {
$_FILES = daddslashes($_FILES);
}
function daddslashes($string, $force = 0) {
if(!$GLOBALS['magic_quotes_gpc'] || $force) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = daddslashes($val, $force);
}
} else {
$string = addslashes($string);
}
}
return $string;
} 展开
2个回答
2012-11-28
展开全部
把数组内容导入到符合表
比如$_COOKIE['a']='123'
哪么经过他的非法字符过滤后,extract函数后变成
$a='123'这样子的模式。。
这个是有顺序的,按官方这样子的排序中
如果$_COOKIE\$_POST\$_GET 中都有相同的变量,后面的会替换掉前面的。。
比如$_COOKIE['a']='123'
哪么经过他的非法字符过滤后,extract函数后变成
$a='123'这样子的模式。。
这个是有顺序的,按官方这样子的排序中
如果$_COOKIE\$_POST\$_GET 中都有相同的变量,后面的会替换掉前面的。。
追问
请问如果是未知的数组怎么办?例如:$_POST["Data"]["0"]="a";$_POST["Data"]["1"]="b";$_POST["Data"]["2"]="c";或$_POST["Data"]["0"]="a";$_POST["Data"]["1"]="b";$_POST["Data"]["2"]="c";$_POST["Data"][“3"]="d";
--
上面的数组data关联数组下的数量是未知的,可以是5个,可以是N个。被@extract(daddslashes($_POST));处理后,还如何遍历Data数组并进行SQL语句拼接?
追答
还是一个数组
你这个例子中会是一个数组
$Data=array('0'=>'a','1'=>'b'.......);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询