3

如果我从字符串中删除所有特殊字符,那么是否有可能进行 sql 注入??(我的输入中不需要任何特殊字符)

我正在使用以下代码删除所有特殊字符

    $unsafe = $_GET["tag"];
$safe = preg_replace('/[^a-zA-Z0-9 ]/s', '', $unsafe);
$safe = mysql_real_escape_string($safe);

还有没有可能进行sql注入?

4

1 回答 1

6

如果您使用mysql_real_escape_string,则没有理由删除“不安全字符”,因为它会使它们全部安全。

但是,mysql_*不推荐使用这些功能,因为它们很难正确使用。PHP 开发人员现在建议使用PDOmysqli_*函数。有关如何将参数化查询与 PDO 或 mysqli 一起使用,请参阅此答案。

于 2013-03-05T20:35:16.603 回答