0

0

Composer如何查看依赖的安全漏洞?(audit命令使用)

尼克

尼克

发布时间:2026-02-24 15:54:40

|

326人浏览过

|

来源于php中文网

原创

composer audit 命令直接查出 composer.lock 中已安装包对应 packagist 安全告警数据库(security-advisories)收录的已知漏洞,不扫描源码、运行时行为或未 lock 的 dev 依赖(除非加 --dev)。

composer如何查看依赖的安全漏洞?(audit命令使用)

composer audit 命令能直接查出哪些漏洞?

它只检查 composer.lock 中已安装的包,不扫描源码或运行时行为,也不覆盖未 lock 的 dev 依赖(除非加 --dev)。底层调用的是 Packagist 的安全告警数据库(security-advisories),所以结果和 FriendsOfPHP/security-advisories 同源。

常见错误现象:执行 composer audit 返回 “No security vulnerability detected”,但实际项目里有已知高危漏洞——大概率是没生成或没更新 composer.lock,或者用了私有仓库且未配置安全源。

  • 必须确保 composer installcomposer update 已成功运行并生成/更新了 composer.lock
  • 私有包需在 composer.jsonrepositories 中显式声明,并确认其元数据包含 security-advisories 兼容字段
  • 若项目长期未 update,audit 可能漏掉新披露但尚未被旧 lock 文件记录的漏洞(因为 lock 锁死的是旧版本)

如何让 audit 输出更实用的信息?

默认输出只列 CVE 编号和包名,很难定位到具体哪一行代码受影响。加 --format=json--severity=high,critical 能快速聚焦风险等级;加 --no-dev 可排除开发期依赖干扰生产环境评估。

使用场景:CI 流水线中自动拦截高危漏洞,或交接项目时快速摸底第三方风险。

  • composer audit --severity=critical:只看最高危项,适合紧急响应
  • composer audit --format=json | jq '.advisories[] | select(.severity == "critical")':配合 jq 提取关键字段(需提前装 jq)
  • composer audit --dev:检查 require-dev 中的漏洞,比如测试工具链里的反序列化问题

audit 报错 “Could not fetch advisories” 怎么办?

这是网络或配置问题,不是项目本身的问题。Composer 默认从 https://packagist.org 拉取安全通告,如果公司内网屏蔽了该域名,或用了镜像源但镜像未同步安全数据,就会失败。

JTBC网站内容管理系统5.0.3.1
JTBC网站内容管理系统5.0.3.1

JTBC CMS(5.0) 是一款基于PHP和MySQL的内容管理系统原生全栈开发框架,开源协议为AGPLv3,没有任何附加条款。系统可以通过命令行一键安装,源码方面不基于任何第三方框架,不使用任何脚手架,仅依赖一些常见的第三方类库如图表组件等,您只需要了解最基本的前端知识就能很敏捷的进行二次开发,同时我们对于常见的前端功能做了Web Component方式的封装,即便是您仅了解HTML/CSS也

下载

错误信息示例:Could not fetch advisories: cURL error 7: Failed to connect to packagist.org port 443

  • 先试 curl -I https://packagist.org 确认基础连通性
  • 检查是否设置了 COMPOSER_REPO_PACKAGIST 环境变量或 repositories.packagist.org 配置,有些镜像站(如阿里云)不提供安全通告接口
  • 临时切回官方源:composer config --global repo.packagist.org composer https://packagist.org

audit 和 require --update-with-dependencies 有什么关系?

audit 不会升级任何包,它只是“照镜子”。真正修复漏洞靠的是 composer update,但要注意:直接 update 可能破坏兼容性,尤其当漏洞在次级依赖(transitive dependency)里时。

参数差异明显:composer update foo/bar 只升指定包;composer update foo/bar --with-all-dependencies 会连带升级其所有子依赖,更可能命中修复版本。

  • 先用 composer audit --direct 看直系依赖漏洞,优先处理
  • 对间接依赖,用 composer depends vendor/package 定位谁引入了它,再决定是升级上游还是加 replace 规则
  • 某些 CVE 修复需要 PHP 版本 ≥8.1,别只盯着 Composer 版本,漏看 php 自身限制

audit 的结果永远滞后于真实世界的新漏洞披露节奏,而且它不检测逻辑漏洞、硬编码密钥、或你手写的 SQL 拼接——那些得靠人工审计或 SAST 工具补位。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

160

2023.12.25

数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

1027

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

337

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

379

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

1822

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

377

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

1394

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

585

2024.04.29

Golang 生态工具与框架:扩展开发能力
Golang 生态工具与框架:扩展开发能力

《Golang 生态工具与框架》系统梳理 Go 语言在实际工程中的主流工具链与框架选型思路,涵盖 Web 框架、RPC 通信、依赖管理、测试工具、代码生成与项目结构设计等内容。通过真实项目场景解析不同工具的适用边界与组合方式,帮助开发者构建高效、可维护的 Go 工程体系,并提升团队协作与交付效率。

1

2026.02.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
第二十四期_PHP8编程
第二十四期_PHP8编程

共86课时 | 3.4万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 2.6万人学习

第二十三期_PHP编程
第二十三期_PHP编程

共93课时 | 7.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号