本文目录导读:

PHP Security Advisories 是 PHP 官方或社区提供的安全公告,用于通知 PHP 版本中的安全漏洞、受影响版本及修复建议,要获取和应对这些安全公告,你可以参考以下方法:
官方安全公告 (PHP.net)
- 访问地址:
https://www.php.net/security/
列出所有已知的安全漏洞(CVE),包括漏洞描述、影响版本、修复版本和补丁链接。- 使用方式:
定期检查该页面,或订阅其 RSS/Atom 源(页面底部有链接)以获取更新。
使用 Composer 管理依赖安全
-
安装:
composer require roave/security-advisories:dev-master
-
作用:
自动阻止安装有已知漏洞的 Composer 包(如 Laravel、Symfony 等)。
它会将已知漏洞的版本标记为“冲突”,阻止composer install或update。 -
更新:
定期运行composer update roave/security-advisories获取最新安全数据。
社区安全公告
- FriendsOfPHP/security-advisories:
GitHub 仓库
包含 PHP 生态(框架、库)的已知漏洞数据库,常用于 CI/CD 扫描。 - 本地化检查工具:
配合 Local PHP Security Checker 使用(见下文)。
安全扫描工具
-
Local PHP Security Checker (SensioLabs)
# 下载二进制文件(无需安装 PHP) curl -L https://github.com/fabpot/local-php-security-checker/releases/latest/download/local-php-security-checker_linux_amd64 -o php-security-checker chmod +x php-security-checker ./php-security-checker --path=/path/to/project
功能:
扫描composer.lock中的依赖,对比已知漏洞数据库(基于 FriendsOfPHP 的数据)。 -
在线扫描:
使用 PHP Security Checker(Symfony 官方),上传composer.lock文件即可检查。
自动提醒与 CI/CD 集成
- GitHub Dependabot:
在 GitHub 仓库启用 Dependabot,自动检测并提醒依赖中的安全漏洞。 - GitLab Security Dashboard:
GitLab 内置的依赖扫描功能(需配置composer.lock)。 - Jenkins/CI 插件:
集成local-php-security-checker到 CI 流水线,阻止构建部署有漏洞的代码。
PHP 版本升级安全策略
- 始终使用 受支持的 PHP 版本(如 8.1、8.2、8.3),避免使用已停止安全支持的版本(如 PHP 7.4 以下)。
- 查看 PHP 版本支持时间表。
手动检查常见漏洞
- 常见风险:
- 未过滤输入导致的 SQL注入、XSS、文件包含
- 使用过时的
mysql_*函数(应改用 PDO 或 MySQLi) - 不安全的
unserialize()调用
- 防护:
参考 OWASP PHP 安全指南。
| 方法 | 适用场景 | 工具/链接 |
|---|---|---|
| 官方公告 | 获取 PHP 核心漏洞 | https://www.php.net/security/ |
| Composer 依赖扫描 | 项目安全 | roave/security-advisories |
| 本地或 CI 扫描 | 自动化安全检测 | local-php-security-checker |
| 在线扫描 | 快速检查 | https://security.symfony.com/ |
最佳实践:
- 将
roave/security-advisories加入composer.json的require-dev。 - 在 CI 流水线中运行
local-php-security-checker。 - 订阅 PHP 安全公告 RSS 或邮件列表(https://www.php.net/mailing-lists.php)。
- 每周至少更新一次依赖(
composer update)。