我有一堆没有正确消毒的代码。最好的方法是绑定变量,这个页面http://php.net/manual/en/function.mysql-escape-string.php表示根本不应该使用mysql_escape_string(我使用的是5.3.2)。
在大于5.3.0的版本中,mysql_escape_string根本不起作用吗?
编辑:我知道绑定是最好的方法,但是有一堆旧代码需要清理。所以如果我使用mysql_escape_string,它会不起作用?它没用吗?
答案 0 :(得分:2)
最好的选择是使用像PDO这样的准备/参数化查询。如果你想坚持使用更原生的方式与MySQL交互,你也可以使用MySQLi。使用参数化查询,数据将独立于SQL发送,从而使其在SQL注入方面具有内在的安全性。
如果您正在寻找mysql_escape_string()
的替代品,那将是mysql_real_escape_string()
。它是替代品,如果您完全关心安全性,则必须使用它。