Bad*_*dal 3 php mysql sql sql-injection
如果我删除字符串中的所有特殊字符比没有任何SQL注入的机会??(我的输入中不需要任何特殊字符)
我正在使用以下代码删除所有特殊字符
$unsafe = $_GET["tag"];
$safe = preg_replace('/[^a-zA-Z0-9 ]/s', '', $unsafe);
$safe = mysql_real_escape_string($safe);
Run Code Online (Sandbox Code Playgroud)
有没有机会进行SQL注入?
如果你使用mysql_real_escape_string,那么没有理由删除"不安全的字符",因为它会使它们都安全.
但是,mysql_*不建议使用这些功能,因为它们很难正确使用.PHP开发人员现在建议使用PDO或mysqli_*函数.有关如何使用PDO或mysqli参数化查询,请参阅此答案.