背景知识要求:能够看懂简单的HTML, PHP, SQL代码
SQL原理: 通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。简单来说就是本来是用户输入数据的地方,结果被输入了一段代码,而服务器将会执行这段代码,导致用户获得原本不能获得的信息和权限。
举一个简单的例子:
假设在一个服务器中有login.html和login.php文件,源码如下:
longin.html
<html>
<body>
<br><br><h2>Login</h2><br><br>
<form action="login.php" method="POST">
Username:
<input type="text" name="username">
Password:
<input type="text" name="password">
<input type="submit" value="Submit">
</form>
</body>
</html>
login.php
<html>
<body>
<?php
//建立连接
$conn = mysqli_connect('localhost','root','*******');
if (!$conn)
{
die('Could not connect: ' . mysqli_error());
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
$name=$_POST["username"];
$passwd=$_POST["password"];
//sql语句
$sql = "SELECT * FROM login WHERE username='$name' AND password='$passwd'"