Dan*_*ife 2 php sql code-injection
我刚刚读了关于SQL注入的内容,并在我正在阅读的博客上发现了这个函数我想知道它是否对SQL注入是安全的..如果我传递remove_mq($_POST)给它,我可以$_POST["var"]在查询中使用没有问题吗?
function remove_mq($array){
foreach($array as $key => $value){
if(is_array($value)){
$array[$key] = remove_mq($value);
}
else{
$array[$key] = addslashes($value);
}
}
return $array;
}
Run Code Online (Sandbox Code Playgroud)
不.添加斜杠不是为查询转义的正确函数.你需要使用mysql_real_escape_string
除此之外,你应该不执行一个查询实际使用值之前SQL逃逸.假设你有类似的东西<input name="foo" value="$_POST[foo]"- 那么你需要它 - htmlspecialchars()被动 - 而不是addslashes(等等) - 逃脱
除此之外,最好的解决方案是使用PDO预准备语句,因为您将SQL查询与params分开,因此您根本不需要任何转义.