-1

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

php get var clear 好不好请帮帮我

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

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

4

2 回答 2

5

不。不。不

这对攻击并不“安全”。

最低限度的使用mysql_real_escape_string(为此设计)。第一个版本实际上存在缺陷mysql_escape_string,这就是“真实”版本存在的原因。

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

请参阅如何防止 PHP 中的 SQL 注入?(我也投票决定以骗子的身份结束)。答案包括 PDO 和准备好的语句等。

于 2012-08-02T06:08:03.700 回答
2

使用准备好的语句: http: //php.net/manual/ru/pdo.prepared-statements.php

于 2012-08-02T06:10:47.360 回答