PHP 网站常见安全漏洞及防护方法——别再被入侵了
PHP 网站是被入侵最多的类型。大多数情况不是 PHP 本身的问题,而是代码写得不够安全。

1. SQL 注入
最常见的漏洞。攻击者在输入框提交恶意 SQL 语句,直接操作你的数据库。
错误写法:
$sql = "SELECT * FROM users WHERE username = '" . $_POST['username'] . "'";正确写法(使用预处理):
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
$stmt->execute([$_POST['username']]);2. XSS 跨站脚本攻击
攻击者在留言板等地方提交 JavaScript 代码,其他用户访问时就会执行。
输出时转义:
echo htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8');3. 文件上传漏洞
用户上传了 PHP 木马文件,直接拿到服务器权限。
防护方法:
- 限制上传文件类型(只允许 jpg/png/gif)
- 重命名文件,不要用用户上传的文件名
- 上传目录禁止执行 PHP:Nginx复制location /uploads/ { location ~ \.php$ { deny all; } }
4. CSRF 跨站请求伪造
攻击者伪造请求,让管理员在不知情的情况下执行操作。
加 Token 验证:
if ($_POST['token'] !== $_SESSION['token']) {
die('非法请求');
}5. 文件包含漏洞
include($_GET['page'] . '.php');攻击者传入 ../../../etc/passwd 就能读取系统文件。
修复: 用白名单限制可包含的文件。
6. 敏感信息泄露
phpinfo() 文件未删除、.git 目录暴露、错误信息显示数据库密码等。
检查网站目录是否有不该存在的文件。
总结
PHP 安全做好这几条就够了:预处理 SQL、输出转义、文件上传限制、加 Token 验证。80% 的入侵都是因为这几点没做好。











