甚至在mysql_real_escape_string之后还会留下什么漏洞?

时间:2012-02-22 12:18:33

标签: php sql-injection mysql-escape-string

通过此功能后输入的安全性是多少?

100%安全吗?

$id = $_POST['id'];
$id = mysql_real_escape_string($id);

2 个答案:

答案 0 :(得分:1)

最好的方法是不要使用预准备语句将SQL与用户提供的数据混合在一起。

在您的情况下(假设id是一个数字),只需使用$id = intval($_POST['id']);即可。使用普通整数,您无法注入任何东西。在那种情况下你甚至不需要mysql_real_escape_string()

对于字符串参数,使用mysql_real_escape_string()就足够了 - 但永远不要忘记在SQL字符串中引用该参数!

答案 1 :(得分:1)