$sql = "SELECT username,password FROM users WHERE id = ".'(((((('.$_GET["id"].'))))))'; $result = $conn->query($sql);
时间: 2024-05-04 19:18:41 浏览: 165
生成用户密码(Sql server)
这段代码存在严重的 SQL 注入漏洞,攻击者可以通过在 `id` 参数中添加恶意的 SQL 语句来执行任意数据库操作,包括删除或修改数据,甚至获取敏感数据。建议使用预处理语句来处理用户输入,或者对用户输入进行严格的验证和过滤。例如:
```
$id = (int)$_GET['id'];
$stmt = $conn->prepare("SELECT username, password FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$result = $stmt->get_result();
```
在这个例子中,我们首先将 `id` 参数转换为整数类型,然后使用预处理语句和绑定参数来减少 SQL 注入的风险。
阅读全文