php 完整防御sql注入代码
时间: 2023-07-07 18:14:52 浏览: 190
防止 SQL 注入攻击是 Web 开发中必须要考虑的一个安全问题。下面是一些 PHP 防御 SQL 注入攻击的代码示例:
1. 使用预处理语句 PDO:
```
$pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username AND password = :password');
$stmt->execute(array('username' => $username, 'password' => $password));
$result = $stmt->fetchAll();
```
2. 使用 mysqli_real_escape_string 函数:
```
$username = mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
$sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = mysqli_query($conn, $sql);
```
3. 使用 filter_var 函数:
```
$username = filter_var($_POST['username'], FILTER_SANITIZE_STRING);
$password = filter_var($_POST['password'], FILTER_SANITIZE_STRING);
$sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = mysqli_query($conn, $sql);
```
需要注意的是,以上方法仅仅是防御 SQL 注入攻击的一种手段,不能保证 100% 安全。开发者应该在代码中尽可能地增加安全性检查和验证,以确保应用程序的安全性。同时,使用参数绑定、过滤和验证等方法可以在一定程度上减少 SQL 注入攻击的可能性。
阅读全文