<?php // 连接数据库 include "conn.php"; $id = $_POST['id']; $password = $_POST['password']; // 查询admin_personnel表格 $sql="SELECT * FROM admin_personnel WHERE id='$id' AND password='$password'"; $result = $conn->query($sql); // 如果查询结果为空,表示该用户不存在或密码错误 if ($result->num_rows == 0) { echo "Invalid ID or password"; } else { // 获取查询结果中的用户信息 echo "您已成功登录.";} $conn->close(); ?>解决sql语句注入漏洞的问题
时间: 2024-01-06 15:03:38 浏览: 81
# PHP 面试题-.md
要解决SQL注入漏洞,最好的方法是使用预处理语句。这可以通过使用PDO或mysqli扩展来实现。以下是使用PDO的示例代码:
```php
<?php
include "conn.php";
$id = $_POST['id'];
$password = $_POST['password'];
// 使用PDO预处理语句
$sql = "SELECT * FROM admin_personnel WHERE id=? AND password=?";
$stmt = $conn->prepare($sql);
$stmt->execute([$id, $password]);
// 获取查询结果中的用户信息
if ($stmt->rowCount() == 0) {
echo "Invalid ID or password";
} else {
echo "您已成功登录.";
}
$conn->close();
?>
```
使用预处理语句可以确保用户输入的值不会与SQL语句混淆,从而有效地防止SQL注入攻击。
阅读全文