可使用五种方法检测php项目依赖漏洞:一、composer 2.5+内置security:check命令;二、运行sensiolabs的security-checker.phar;三、本地构建go版local php security checker;四、集成spryker sdk的security-checker开发依赖;五、调用osv.dev api定制查询。

如果您正在维护一个基于Composer的PHP项目,但不确定其中引用的第三方依赖是否存在已知安全风险,则可能是由于未及时比对官方漏洞数据库。以下是使用PHP Security Checker检测依赖漏洞的多种方法:
一、使用Composer原生命令执行安全检查
Composer 2.5+ 版本已内置 composer security:check 命令,该命令直接读取当前目录下的composer.lock文件,并与Symfony安全公告数据库进行离线优先比对,隐私保护强且无需额外安装工具。
1、确认Composer版本是否满足要求:运行 composer --version,确保输出版本号 ≥ 2.5。
2、在项目根目录下执行安全扫描命令:composer security:check。
3、若需生成结构化报告用于CI集成,添加格式参数:composer security:check --format=json > security-report.json。
二、通过PHAR文件方式运行Security Checker
该方法适用于无法升级Composer版本或需在隔离环境中运行的场景。SensioLabs早期发布的security-checker.phar仍可被部分项目兼容使用,其逻辑聚焦于CVE匹配与语义化版本范围判断。
1、下载PHAR文件:curl -O https://get.sensiolabs.org/security-checker.phar。
2、赋予执行权限:chmod +x security-checker.phar。
3、执行检测并指定composer.lock路径:php security-checker.phar security:check ./composer.lock。
三、采用Local PHP Security Checker进行本地化扫描
Local PHP Security Checker是一款独立Go语言编写的命令行工具,所有分析均在本地完成,不上传任何项目数据,支持自定义缓存目录与离线模式,适合对隐私和可控性要求高的团队。
1、克隆源码仓库:git clone https://gitcode.com/gh_mirrors/lo/local-php-security-checker。
2、进入目录并构建可执行文件:cd local-php-security-checker && go build -o local-php-security-checker main.go。
3、启用本地缓存以提升后续扫描效率:./local-php-security-checker --cache-dir ./php-security-cache --local。
四、集成Spryker SDK Security Checker作为开发依赖
该方案将安全检查能力嵌入项目自身依赖体系中,便于统一管理命令入口与版本更新策略,尤其适合使用Spryker框架或遵循类似控制台命令注册机制的PHP应用。
1、以开发依赖形式安装:composer require --dev spryker-sdk/security-checker。
2、确保项目控制台类(如ConsoleDependencyProvider)中已注册对应命令。
3、运行检查命令:console security:check(具体命令名依项目注册配置而定)。
五、调用OSV.dev API实现定制化漏洞查询
OSV.dev是Google维护的开源漏洞数据库,提供稳定RESTful接口,支持按包名与精确版本号实时查询CVE状态,适合构建内部安全门禁系统或补充其他工具未覆盖的生态组件。
1、构造查询URL:https://api.osv.dev/v1/query,POST请求体为JSON格式,包含commit或version字段。
2、使用curl发送请求示例:curl -X POST https://api.osv.dev/v1/query -H "Content-Type: application/json" -d '{"version": "2.9.0", "package": {"name": "monolog/monolog", "ecosystem": "Packagist"}}'。
3、解析返回的JSON响应,提取vulns数组中的id、severity和details字段。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











