批改状态:合格
老师批语:
<?php$dsn = 'mysql:host=localhost;port=3308;dbname=cary;charset=utf8';$username = 'root';$password = '';$pdo = new PDO($dsn,$username,$password);//var_dump($pdo);?>
<?phpheader('content-type:text/html;charset:utf8');//假设前端页面传过来的用户名和密码是qinshihuang和123456,分别赋值给了两个变量。$loginname = "qinshihuang";$loginpwd="123456";//引用数据库连接文件require_once 'connectsql.php';//用前端传过来的用户名和密码查询数据库里面是否存在;$stmt = $pdo -> query("select `username`,`password`,`chinesename` from `login`where `username` = '{$loginname}' and `password` = '{$loginpwd}'" );foreach ($stmt as $row) {print $row['username'] . "<br>";print $row['password'] . "<br>" ;print $row['chinesename'] . "<br>";}//显示执行的sql语句var_dump($stmt);?>
qinshihuang
123456
秦始皇
执行了下面的语句
C:\wamp\www\202201\login.php:20:
object(PDOStatement)[2]
  public ‘queryString’ => string ‘select username,password,chinesename from login 
where username = ‘qinshihuang’ and password = ‘123456’’ (length=116)
//假设前端页面传过来的用户名和密码是qinshihuang和123456,分别赋值给了两个变量。
$loginname = “‘ or ‘1==1’#”;
$loginpwd=”123456”;
返回了用户表所有值如下
iubang
123456
刘邦
xiangyu
123456
项羽
liuying
123456
刘盈
liugong
123456
刘恭
qinshihuang
123456
秦始皇
执行了如下语句,伪造了username=’’ or ‘1==1’的查询条件,#以后的语句不会执行。
C:\wamp\www\202201\login1.php:20:
object(PDOStatement)[2]
  public ‘queryString’ => string ‘select username,password,chinesename from login 
where username = ‘’ or ‘1==1’#’ and password = ‘123456’’ (length=117)
<?phpheader('content-type:text/html;charset:utf8');//假设前端页面传过来的用户名和密码是qinshihuang和123456,分别赋值给了两个变量。//$loginname = "' or '1==1'#";$loginname = "qinshihuang";$loginpwd="123456";//引用数据库连接文件require_once 'connectsql.php';//pdo预处理接入$sql = "select `username`,`password`,`chinesename` from `login` where `username` = ? and `password` = ?";//准备要执行的语句,并返回语句对象$stmt = $pdo->prepare($sql);//绑定参数到指定的变量名$stmt->bindparam(1,$loginname);$stmt->bindparam(2,$loginpwd);//执行一条预处理语句$stmt->execute();$res = $stmt->fetchAll(PDO::FETCH_ASSOC);var_dump($res);?>
C:\wamp\www\202201\login2.php:27:
array (size=1)
  0 =>
    array (size=3)
      ‘username’ => string ‘qinshihuang’ (length=11)
      ‘password’ => string ‘123456’ (length=6)
      ‘chinesename’ => string ‘秦始皇’ (length=9)
C:\wamp\www\202201\login2.php:27:
array (size=0)
  empty
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号