☰分类导航

PHP/安全与性能优化
课程进度 61% · 第14/22章第14/22章 · 标签 1/2
— 1 —

安全基础


```php
<?php
// 输入验证
function sanitize($data) {
    return htmlspecialchars(trim($data), ENT_QUOTES, 'UTF-8');
}

// SQL注入防护(PDO)
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$id]);

// 密码安全
$hash = password_hash($pwd, PASSWORD_BCRYPT);
if (password_verify($input, $hash)) { }
?>
```
php
1
<?php
2
// 输入验证
3
function sanitize($data) {
4
return htmlspecialchars(trim($data), ENT_QUOTES, 'UTF-8');
5
}
6
 
7
// SQL注入防护(PDO)
8
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
9
$stmt->execute([$id]);
10
 
11
// 密码安全
12
$hash = password_hash($pwd, PASSWORD_BCRYPT);
13
if (password_verify($input, $hash)) { }
14
?>
— 2 —

常见漏洞


```php
<?php
// XSS防护
echo htmlspecialchars($input, ENT_QUOTES, 'UTF-8');

// CSRF令牌
$_SESSION['token'] = bin2hex(random_bytes(32));

// 文件上传安全
$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
$allowed = ['jpg', 'png', 'gif'];
if (!in_array($ext, $allowed)) die("不允许的格式");
?>
```
php
1
<?php
2
// XSS防护
3
echo htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
4
 
5
// CSRF令牌
6
$_SESSION['token'] = bin2hex(random_bytes(32));
7
 
8
// 文件上传安全
9
$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
10
$allowed = ['jpg', 'png', 'gif'];
11
if (!in_array($ext, $allowed)) die("不允许的格式");
12
?>
XSSSQL注入CSRFpassword_hash上传安全