Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果没有用户输入,是否需要mysql\u real\u escape\u字符串?_Php_Mysql - Fatal编程技术网

Php 如果没有用户输入,是否需要mysql\u real\u escape\u字符串?

Php 如果没有用户输入,是否需要mysql\u real\u escape\u字符串?,php,mysql,Php,Mysql,我是否必须为每个查询使用mysql\u real\u escape\u string,还是仅当页面上有用户输入时才使用 假设我有: $check = mysql_query ("SELECT * FROM users WHERE user='$user' AND pm='$on'"); $numrows_check = mysql_num_rows($check); if ($numrows_check == 1) { 如果页面没有用户输入,我需要担心S

我是否必须为每个查询使用
mysql\u real\u escape\u string
,还是仅当页面上有用户输入时才使用

假设我有:

$check = mysql_query ("SELECT * FROM users WHERE user='$user' AND pm='$on'");
    $numrows_check = mysql_num_rows($check);
                if ($numrows_check == 1) {
如果页面没有用户输入,我需要担心SQL注入吗

附言。
我知道
pdo
mysqli
,我特别要求
mysql
。谢谢。

SQL注入可以使用表单和链接进行注入。这意味着无论何时用户输入,您都必须使用mysq\u real\u escape\u string()

如何使用链接进行注入。下面给出了一个例子

http:///www.mysite.com?delete.php?id=5
如果显示这样的URL,有些人可以将此“5”更改为他/她的期望值。因此,有几种方法可以避免这种类型的注入一个简单的解决方案是可以使用intval()

因此,有必要对每一个脆弱点使用所有公约。这样你就不用注射了。所以
预防胜于治疗。

我想补充一点,除了-
mysqli
和/或
pdo
仍然需要准备好的语句和参数化查询。是的,:\…您可以做的是将转换工作翻一番。。类似于创建一个与
PDO
的连接,并对项目的一部分一部分地进行更新,直到只使用
PDO
为止。这只是一个想法,我从来没有做过这样的事情,如果你真的要去做的话,你自己承担风险。确保您能够更新完整的零件,使其仅使用
PDO
。别忘了备份你的东西,也许可以使用一些版本控制。。。无论如何,祝你好运:Dso换句话说,每当我进入一个页面,我必须避开所有与之相关的查询?