使用get_magic_quotes_gpc来防止数据库攻击仍然有用吗?如果启用了魔术引号,我想剥去额外的斜线。
if(get_magic_quotes_gpc()){
If magic quotes is enabled, strip the extra slashes
array_walk_recursive($_GET,create_function('&$v,$k','$v = stripslashes($v);'));
array_walk_recursive($_POST,create_function('&$v,$k','$v = stripslashes($v);'));
}
我查看了php手册,发现它已被弃用。我不确定我可以使用哪些替代方案,或者是否可能有一个我不知道的调整。因为我还是编程和学习不同编码技术的新手。任何提示将不胜感激
答案 0 :(得分:1)
使用此
function mysql_prep($value)
{
$magic_quotes_active = get_magic_quotes_gpc();
$new_enough_php = function_exists("mysql_real_escape_string");
if ($new_enough_php) {
// undo any magic quote effects so mysql_real_escape_string can do the work
if ($magic_quotes_active) {
$value = stripslashes($value);
}
$value = mysql_real_escape_string($value);
} else {
// if magic quotes aren't already on then add slashes manually
if (!$magic_quotes_active) {
$value = addslashes($value);
}
// if magic quotes are active, then the slashes already exist
}
return ($value);
}
我建议你pdo prepared statement
$q=$pdo->prepare("query where id=:id");
$q->execute(array(":id"=>1))