我有一个网站,我在服务器端使用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)
任何帮助是极大的赞赏.
谢谢
是的,它很脆弱.您直接从用户输入中处理值并将其放入查询中.
您应该查看mysql_real_escape_string,或者(最好)使用提供参数化查询的MySQLi.SQL注入是由用户数据作为SQL代码而不是数据注入引起的.保护查询的唯一真正方法是使用参数化查询,该查询在协议级别分隔数据和查询文本.
此外,您的密码以明文形式存储.您应该使用盐渍哈希函数作为绝对最小值.
您还应该看看这些令人敬畏的问题:
| 归档时间: |
|
| 查看次数: |
1211 次 |
| 最近记录: |