0

使用 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 手册,发现它已被弃用。我不确定我可以使用哪些替代方案,或者是否有我不知道的调整。因为我对编程和学习不同的编码技术仍然很陌生。任何提示将非常感谢

4

1 回答 1

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);
}

我会建议你 pdoprepared statement

$q=$pdo->prepare("query where id=:id");
$q->execute(array(":id"=>1))
于 2012-10-05T17:54:30.200 回答