这个PHP代码是否打开了一个SQL注入网站

Cas*_*ynn 3 php sql security sql-injection

我正在开发一个网络应用程序,我遇到了这个代码snippit

$email=$_POST['email'];
$pass=$_POST['pass'];
$pass=md5($pass);
$query=mysql_real_escape_string($email,$link);
//echo $query."<br>";
$sql=mysql_query("SELECT pass FROM users WHERE email='".$email."'",$link);
if($row=mysql_fetch_array($sql))
{
Run Code Online (Sandbox Code Playgroud)

我认为程序员打算$query=mysql_real_escape_string($email,$link);这样做$email=mysql_real_escape_string($email,$link);

我在这里有正确的想法吗?

Ry-*_*Ry- 5

是的,你是绝对正确的 - 只要纠正那个部分,就像你说的那样,改变它

 $email = mysql_real_escape_string($email, $link);
Run Code Online (Sandbox Code Playgroud)

,这将防止SQL注入那里.

另外,我建议你使用hash("sha512", xxx)而不是md5因为MD5已经过时了.如果您的列大小不允许,但您无法更改它,那么它仍然可以.