Hola usando estas funciones,que riesgo corro en tener problemas de seguridad,es necesesario usar extract()o hay alguna manera mejor de convertir las variables superglobales(array)en trozos de variables。
好,使用超全局变量中的函数提取作为$ _POS和$ _GET存在一些风险,我的工作方式如下。
存在SQL INJECTION的风险,或者有提取
的替代方法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);
答案 0 :(得分:0)
是的,存在风险。您不希望盲目地将用户输入导入到符号表中。您应该花时间验证和/或清理用户输入。 filter_var函数可以为此提供帮助。
插入数据库时,使用驱动程序的转义机制来消除注入的可能性。如果您正在使用mysql_ *函数,则使用mysql_real_escape_string。但是,为此使用PDO和参数化查询要好得多。