如果我从字符串中删除所有特殊字符,那么是否有可能进行 sql 注入??(我的输入中不需要任何特殊字符)
我正在使用以下代码删除所有特殊字符
$unsafe = $_GET["tag"];
$safe = preg_replace('/[^a-zA-Z0-9 ]/s', '', $unsafe);
$safe = mysql_real_escape_string($safe);
还有没有可能进行sql注入?
如果我从字符串中删除所有特殊字符,那么是否有可能进行 sql 注入??(我的输入中不需要任何特殊字符)
我正在使用以下代码删除所有特殊字符
$unsafe = $_GET["tag"];
$safe = preg_replace('/[^a-zA-Z0-9 ]/s', '', $unsafe);
$safe = mysql_real_escape_string($safe);
还有没有可能进行sql注入?
如果您使用mysql_real_escape_string
,则没有理由删除“不安全字符”,因为它会使它们全部安全。
但是,mysql_*
不推荐使用这些功能,因为它们很难正确使用。PHP 开发人员现在建议使用PDO或mysqli_*
函数。有关如何将参数化查询与 PDO 或 mysqli 一起使用,请参阅此答案。