1.SQL注入原理
SQL注入便是攻击者经过把恶意的SQL语句插进到Web表单的输入页面中,且插进的恶意语句会引起原有的SQL语句出现改变,从而达到攻击者的目的去让它执行有些危险的数据操作,进一步诈骗服务器去执行有些非本意的操作。简单来讲,所有能够触及到数据库增删改查的系统功能点都有可能存在SQL注入漏洞。
一个简单的攻击原理举例:
在SQL注入中,咱们更应该关注的是业务规律,例如业务中可能设计到的增删改查操作,下面经过一个简单的代码小demo来进行SQL注入的演示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>SQL注入小demo</title>
</head>
<body>
用户名:
<form method="GET"> //form表单经过get方式接收数据
<input type="text" name="name" size="50" /> //经过name参数接收数据
<br>
<input type="submit" value="点击查找" style="margin-top:50px;">
<?php
$db = mysqli_connect("localhost","root","123456","demo"); //创立mysql连接
if(!$db){
echo "数据库链接失败!";
exit();
}
$name = $_GET[name]; //经过前端设置的name参数将数据接收到后端进行处理
$sql = "select * from user where name = ".$name.";";
echo " 输出当前执行的SQL主句:".$sql."";
$result = mysqli_query($db,$sql); //执行SQL语句
while($row=mysqli_fetch_array($result)) //取出一行数据的所有内容以数组的形式返回
{
echo "账号:".$row[user].""; //输出一行数据的user字段值
echo "暗码:".$row[passwd]."";//输出一行数据的passwd字段值
}
mysqli_close($db);//关闭mysql连接
?>
</form>
</body>
</html>
1.1 PHP MySQLi基本函数
PHP MySQLi 函数准许拜访 MySQL 数据库服务器。通俗来讲MySQLi 下的函数用来处理PHP中关于数据增删改查的操作。
mysqli_connect()
|