繁体   English   中英

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

[英]Is mysql_real_escape_string necessary if there are no user inputs?

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

比方说我有:

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

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

PS我知道pdomysqli ,我是专门针对mysql 谢谢。

SQL注入可以使用表单注入,也可以使用链接。 这意味着只要有用户的输入,那么你必须得到mysq_real_escape_string()

注射如何使用链接注入。 以下给出了一些例子。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM