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