如果我删除所有特殊字符,Sql注入的机会?

时间:2013-03-05 20:33:47

标签: php mysql sql sql-injection

如果我从字符串中删除所有特殊字符,而不是sql注入的机会?(我的输入中不需要任何特殊字符)

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

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

还有没有机会进行SQL注入?

1 个答案:

答案 0 :(得分:6)

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

但是,不建议使用mysql_*功能,因为它们很难正确使用。 PHP开发人员现在建议使用PDOmysqli_* functions。有关如何使用PDO或mysqli的参数化查询,请参阅this answer