欢迎来到程序员中文网!

首页 Linux Mysql C++ Python PHP JavaScript 资源下载 动态 开源推荐
我要投稿 投诉建议

PHP 安全防御:SQL 注入、XSS 与 CSRF

时间:2026年08月12日 05:38:48 浏览:0

PHP 安全防御:SQL 注入、XSS 与 CSRF


安全是 Web 应用的生命线,需从输入到输出全面防护。


1. SQL 注入防御(预处理)


$stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');
$stmt->execute([':id' => $id]);

2. XSS 防御(输出转义)


echo htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8');

框架如 Laravel Blade 默认转义:{{ $var }}


3. CSRF 防御(令牌)


// 生成
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
// 表单隐藏域
<input type='hidden' name='csrf_token' value="<?php echo $_SESSION['csrf_token']; ?>">
// 验证
if ($_POST['csrf_token'] !== $_SESSION['csrf_token']) {
die('CSRF 攻击检测');
}

Laravel 自动处理:@csrf


4. 文件上传安全



  • 限制文件类型和大小。

  • 使用 mime_content_type 验证真实类型。

  • 重命名文件,避免路径遍历。


遵循“输入过滤、输出转义”原则,可抵御多数攻击。