这个"清除"功能是否会阻止SQL注入?

SAG*_*R.G -1 php sql get

可能重复:
在PHP中阻止SQL注入的最佳方法

php get var clear是好还是不好plz帮助我

function Clear($text)
    $Var = str_replace("'", "", $text);
    $Var = str_replace('"', '', $Var);
    $Var = strip_tags($Var);
    $Var = htmlentities($Var);
    return $Var;
}
$_GET['Var'] = "1='1'";
$Var = Clear($_GET['Var']);
$Query = "SELECT * FROM TABLE_NAME WHERE COL ='{$Var}'";
echo 'Result : '.($Query);
Run Code Online (Sandbox Code Playgroud)

它是用于SQL注入的,这是我使用pdo编写的示例代码.如果我使用mysql_real_escape_string它不起作用.

小智 5

没有.没有.没有

这不是攻击的"安全".

最低限度的使用mysql_real_escape_string(其被设计为这个).第一个版本,mysql_escape_string,是真正有缺陷这就是为什么"真正"的版本存在.

但是,我建议占位符作为更通用(和更整洁)的解决方案.

请参阅如何在PHP中阻止SQL注入?(我也投票决定以欺骗手段结束).答案包括PDO和准备好的陈述等.