推荐使用 Roave/SecurityAdvisories 阻止安装含漏洞的依赖,并通过 composer.json 定义 "security-check" 脚本运行 cve-check 检测已知 CVE;结合 PHPStan 与安全扩展分析代码中不安全函数调用,将检查集成到 CI/CD 确保定期执行。

编写一个 Composer 脚本来检测代码中的安全漏洞,核心是利用现有的安全分析工具并将其集成到项目的 composer.json 中。最常用且官方推荐的工具是 SensioLabs Security Checker 或其现代替代品 Roave/SecurityAdvisories 和 PHPStan + security-checker 扩展。以下是具体实现方法。
在项目中添加用于检测漏洞的工具。推荐使用 roave/security-advisories,它不会引入任何功能,但会阻止你安装已知存在安全问题的依赖包。
这个包的作用是声明冲突(conflict)规则,一旦你的依赖树中包含已知有漏洞的版本,Composer 安装或更新时就会报错。
如果你希望主动运行安全检查,可以使用 localheinz/composer-security-checker 或直接使用 symfony/security-checker(已弃用),目前更推荐使用 phpsecurity/cve-check 或集成 CI 工具。
安装 CLI 检查工具示例:
composer require --dev phpsecurity/cve-check编辑 composer.json,在 "scripts" 部分添加自定义命令:
现在你可以通过以下命令运行安全检测:
composer security-check该命令会分析 composer.lock 文件,检查已安装的依赖是否存在已知 CVE 漏洞。
除了依赖层面的漏洞,你还可检测代码逻辑中的安全问题。使用 phpstan/phpstan 加上安全扩展:
创建 phpstan.neon 配置文件,并启用相关规则来检测不安全的函数调用(如 exec, system, unserialize 等)。
然后在 composer.json 中添加脚本:
运行:composer analyse 可发现潜在的安全编码问题。
基本上就这些。通过组合依赖约束、自动化检查工具和静态分析,你可以构建一个有效的 Composer 安全检测流程。不复杂但容易忽略的是定期执行这些检查,建议将其集成到 CI/CD 流程中。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号