写一个容易受到http参数污染攻击的简单php页面实例
时间: 2024-11-25 10:22:19 浏览: 11
在PHP中,如果你编写一个接受用户输入并直接拼接到URL作为查询字符串的页面,可能会容易受到HTTP参数污染攻击,也称为SQL注入或跨站脚本攻击(Cross-Site Scripting, XSS)。下面是一个简单的例子:
```php
<?php
// 这段代码会将用户的搜索关键词直接插入到数据库查询中
$search = $_GET['search']; // 假设来自GET请求的'search'参数
$query = "SELECT * FROM products WHERE name LIKE '%$search%'"; // 危险的操作
// 尝试连接到数据库并执行查询
$conn = mysqli_connect("localhost", "username", "password", "database");
$result = mysqli_query($conn, $query);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
echo "Product: " . $row["name"] . "<br>";
}
} else {
echo "No results found.";
}
?>
```
在这个例子中,如果用户输入包含恶意字符(如SQL关键字或HTML标签),攻击者可以利用这个漏洞。正确的做法应该是对用户输入进行验证、过滤和转义,例如使用`mysqli_real_escape_string()`函数处理敏感数据。
阅读全文