这个PHP代码是否容易受到SQL注入攻击?

day*_*mer -2 php mysql

我有一个网站,我在服务器端使用PHP,mysql作为数据库.我使用以下脚本从数据库中检索数据.有人能让我知道这段代码是否容易受到注入攻击?如果是这样,请你解决一下吗?

<?php
// PHP script 

$usrname=$_POST['usrname'];
$_SESSION['usremail']=$usrname;
$usrpassword=$_POST['passwd']; 
$db=mysql_select_db('mydb',$connection);
$result=mysql_query("select usrfname,usrlname from userinformation where usremail='$usrname' and usrpassword='$usrpassword'") or die('failed to login');
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏.

谢谢

Pol*_*ial 6

是的,它很脆弱.您直接从用户输入中处理值并将其放入查询中.

您应该查看mysql_real_escape_string,或者(最好)使用提供参数化查询的MySQLi.SQL注入是由用户数据作为SQL代码而不是数据注入引起的.保护查询的唯一真正方法是使用参数化查询,该查询在协议级别分隔数据和查询文本.

此外,您的密码以明文形式存储.您应该使用盐渍哈希函数作为绝对最小值.

您还应该看看这些令人敬畏的问题: