推荐使用 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,它不会引入任何功能,但会阻止你安装已知存在安全问题的依赖包。
composer require –dev roave/security-advisories:dev-master
这个包的作用是声明冲突(conflict)规则,一旦你的依赖树中包含已知有漏洞的版本,Composer 安装或更新时就会报错。
使用命令行工具进行主动扫描
如果你希望主动运行安全检查,可以使用 localheinz/composer-security-checker 或直接使用 symfony/security-checker(已弃用),目前更推荐使用 phpsecurity/cve-check 或集成 CI 工具。
安装 CLI 检查工具示例:
composer require –dev phpsecurity/cve-check
# 或者使用基于 Symfony 的封装
composer require –dev localheinz/composer-security-checker
定义 Composer 脚本
编辑 composer.json,在 "scripts" 部分添加自定义命令:
“scripts”: {
“security-check”: “cve-check”
}
现在你可以通过以下命令运行安全检测:
代码小浣熊
代码小浣熊是基于商汤大语言模型的软件智能研发助手,覆盖软件需求分析、架构设计、代码编写、软件测试等环节
51 查看详情
composer security-check
该命令会分析 composer.lock 文件,检查已安装的依赖是否存在已知 CVE 漏洞。
结合 PHPStan 增强安全性分析
除了依赖层面的漏洞,你还可检测代码逻辑中的安全问题。使用 phpstan/phpstan 加上安全扩展:
composer require –dev phpstan/phpstan phpstan/phpstan-webmozart-assert
创建 phpstan.neon 配置文件,并启用相关规则来检测不安全的函数调用(如 exec, system, unserialize 等)。
然后在 composer.json 中添加脚本:
“scripts”: {
“analyse”: “phpstan analyse src”,
“security-check”: “cve-check”
}
运行:composer analyse 可发现潜在的安全编码问题。
基本上就这些。通过组合依赖约束、自动化检查工具和静态分析,你可以构建一个有效的 Composer 安全检测流程。不复杂但容易忽略的是定期执行这些检查,建议将其集成到 CI/CD 流程中。
以上就是如何编写一个composer脚本来检测代码中的安全漏洞的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/247721.html
微信扫一扫
支付宝扫一扫