可能重复:
在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和准备好的陈述等.