sql注入靶场源代码示例
时间: 2024-08-15 21:08:17 浏览: 42
SQL注入是一种常见的Web应用程序安全漏洞,攻击者通过输入恶意SQL命令来获取、修改或删除数据库中的数据。下面是一个简单的PHP靶场源代码示例,这个例子展示了如何创建一个基本的登录表单,如果没有正确过滤用户输入就容易受到SQL注入攻击:
```php
<?php
// 错误开启以便于查看
error_reporting(E_ALL);
// 假设这是你的数据库连接信息
$host = "localhost";
$db = "testdb";
$user = "root";
$pass = "";
// 获取用户输入
$username = $_POST['username'];
$password = $_POST['password'];
// 没有对输入做任何安全检查,这很危险
$sql_query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
$result = mysqli_query($mysqli, $sql_query);
// 如果查询成功,显示欢迎消息
if (mysqli_num_rows($result) > 0) {
echo "Welcome, $username!";
} else {
echo "Invalid credentials.";
}
// 关闭连接
mysqli_close($mysqli);
?>
```
在这个例子中,如果用户输入了包含SQL语法的部分(如`'; DROP TABLE users; --`),攻击者可能会破坏表结构。正确的做法应该是使用预处理语句(Prepared Statements)或参数化查询来防止SQL注入。
阅读全文