使用!password_verify时是否需要转义密码输入?

时间:2016-04-22 11:53:08

标签: php mysql login

目前我得到了这个:

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

然后我用这个检查密码:

$password_q = mysql_query ("SELECT password FROM ppl WHERE email='$email'"); 
            $password_result = mysql_result ($password_q, 0);
            if (!password_verify($password, $password_result)) {
            $error = 'Wrong password.'; } else {

有没有必要在这里使用mysql_real_escape_string,还是应该将其删除? 这是代码中唯一使用$ password变量的地方。

我应该提到我使用旧的MySQL API。

2 个答案:

答案 0 :(得分:0)

没有必要,因为您(希望)没有将密码传递给您的MySQL请求,因为mysql_real_escape_string是为了从SQL请求参数中转义特殊字符。

  

mysql_real_escape_string - 转义字符串中的特殊字符以用于SQL语句

答案 1 :(得分:0)

由于密码不通过MySQL传递,因此您无需转义它。

转义用于防止SQL注入。由于它是在查询之前完成的,因此不会进行SQL注入。

mysqli_real_escape_string()

  

此函数用于创建可在SQL语句中使用的合法SQL字符串。给定的字符串被编码为转义的SQL字符串,并考虑了连接的当前字符集。

相关问题