使用提取的PHP超全局变量有什么风险?
在超全局变量中使用函数使用提取的PHP超全局变量有什么风险?,php,extract,Php,Extract,在超全局变量中使用函数extract会有一些风险,如$\u POST和$\u GET,我采用以下方法工作 存在SQL注入的风险,或者存在提取的替代方案 if(get_magic_quotes_gpc()) { $_GET = stripslashes($_GET); $_POST =stripslashes($_POST); } function vars_globals($value = '') { if(is_array($value)) $r =
extract
会有一些风险,如$\u POST
和$\u GET
,我采用以下方法工作
存在SQL注入的风险,或者存在提取的替代方案
if(get_magic_quotes_gpc()) {
$_GET = stripslashes($_GET);
$_POST =stripslashes($_POST);
}
function vars_globals($value = '') {
if(is_array($value))
$r = &$value;
else
parse_str($value, $r);
return $r;
}
$r = vars_globals($_GET);
extract($r, EXTR_SKIP);
是的,有风险。您不希望盲目地将用户输入导入符号表。您应该花时间验证和/或清理用户输入。该函数可以帮助实现这一点
当插入数据库时,使用驱动程序的转义机制来消除注入的可能性。如果您使用的是mysql函数,那么应该使用mysql\u real\u escape\u string。但是,使用PDO和参数化查询更好。如果有人自愿翻译,我们将不胜感激:)БМПППППичиаиаиаиаиааиаиаиааиааааааа1072。有SQL注入的风险,或者有一个替代方案来翻译谷歌!