如果没有用户输入,是否需要mysql_real_escape_string?

时间:2016-03-12 14:31:00

标签: php mysql

我是否必须对每个查询使用mysql_real_escape_string,或者只是在页面上有用户输入时使用?{/ p>

我们说我有:

$check = mysql_query ("SELECT * FROM users WHERE user='$user' AND pm='$on'");
    $numrows_check = mysql_num_rows($check);
                if ($numrows_check == 1) {

如果页面没有用户输入,我是否需要担心SQL注入?

P.S。 我知道pdomysqli,我专门询问mysql。感谢。

1 个答案:

答案 0 :(得分:1)

SQL注入可以使用表单注入,也可以使用链接。这意味着每当有用户输入时你就必须 mysq_real_escape_string()

注射如何使用链接注入。示例如下。

http:///www.mysite.com?delete.php?id=5

如果显示这样的URL,并且某些人可以更改此" 5"达到他/她期望的价值。所以有几种方法可以避免这种类型的注入,一个简单的解决方案是你可以使用 intval()

因此有必要对每个易受攻击的点使用所有约定。所以你可以安全注塑。所以        预防胜于治疗。