$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
我可以解决安全问题,但是,就像我说的那样,我有很多访问MySQL服务器的调用,而在我的情况下,解决问题的最佳方法是直接访问我传递给查询的变量,但不使用MySQL函数,因为我已经超出了查询范畴。让我解释一下,我有这个:
mysql_query("SELECT * FROM `post` WHERE id=" . $_GET['edit']);
我不能修改这个查询,因为我在我的所有代码中都有很多这样的查询。相反,我更喜欢检查变量$_GET['edit']上的注入。
如何使用纯PHP检查查询中变量的SQL注入?例如:
$_GET['edit']=freehack($_GET['edit']);