试验环境:
1.已经搭建好的php服务器,并可以通过访问到localhost/index.php;
2.已经安装好数据库,并创建表test,表内有name、age等字段,并随便创建几个假数据用于测试;如图:
开始测试:
编辑localhost/index.php文件,输入一下内容:
connect_error) {
die("连接失败:".$conn->connect_error);
}
echo "连接成功";
echo "
";
$name = "小明";
$code = "select * from test where name=\"$name\"";
echo $code;
echo "
";
$mysqli_result = $conn->query($code);
while($row = $mysqli_result->fetch_array()) {
var_dump($row);
echo "
";
}
echo "
";
$conn->close();
echo "关闭成功";
?>
打开浏览器输入地址localhost/index.php运行看看结果:
能成功查询到一条记录。
现在来模拟输入试试看,就不写http请求了,直接修改$name变量:
将
$name = "小明";
改为
$name = "\" or 1=1 #";
运行看看结果:
成功读出了全部的数据库记录。