0

0

如何使用Composer audit命令检查项目是否存在安全漏洞?

裘德小鎮的故事

裘德小鎮的故事

发布时间:2026-01-04 16:49:02

|

836人浏览过

|

来源于php中文网

原创

Composer audit 命令自2.5.0起为实验性功能,默认禁用,需配置experimental.audit=true才可用;依赖Packagist漏洞数据,PHP要求≥8.0,推荐用roave/security-advisories等成熟方案替代。

如何使用composer audit命令检查项目是否存在安全漏洞?

Composer audit 命令本身并不存在 —— 它是 Composer 2.5+ 新增的实验性功能,但默认未启用,且需额外配置才能使用。 直接运行 composer audit 会报错 Command "audit" is not defined,除非你已手动启用安全插件或升级到支持该命令的版本并启用实验特性。

确认 Composer 版本与 audit 命令可用性

Composer 的 audit 命令从 v2.5.0 开始以实验性功能引入,但必须满足两个前提:

  • Composer 版本 ≥ 2.5.0(运行 composer --version 验证)
  • 启用实验性命令:需在全局或项目级配置中设置 experimental.audittrue
  • 底层依赖安全数据来自 Symfony Security Checker 的镜像服务,该服务已于 2023 年底停用,现由 composer/security-advisories 包和 Packagist 的 advisory 数据替代

若版本过低(如 2.4.x 或更早),audit 命令根本不会被识别,此时应优先升级 Composer:

composer self-update

启用 audit 命令并运行基础检查

即使版本达标,audit 默认仍被禁用。启用方式如下:

  • 全局启用(推荐):
    composer config -g experimental.audit true
  • 项目级启用(仅当前目录生效):
    composer config experimental.audit true
  • 启用后,直接运行:
    composer audit
  • 可加 --format=json 获取结构化输出,便于 CI 解析:
    composer audit --format=json

注意:首次运行可能较慢,因需拉取 Packagist 的最新 advisory 数据缓存;后续执行会复用本地缓存。

科大讯飞-AI虚拟主播
科大讯飞-AI虚拟主播

科大讯飞推出的移动互联网智能交互平台,为开发者免费提供:涵盖语音能力增强型SDK,一站式人机智能语音交互解决方案,专业全面的移动应用分析;

下载

audit 不工作时的替代方案(更可靠)

由于 audit 依赖实验性通道且易受网络/缓存影响,生产环境建议使用成熟替代方案:

  • 使用官方维护的 roave/security-advisories(强制阻止已知漏洞包安装):
    composer require --dev roave/security-advisories:dev-latest
  • 调用 Packagist 官方 API 手动检查(适合脚本集成):
    curl -s "https://packagist.org/packages/{vendor}/{package}/advisories.json" | jq '.advisories[] | select(.severity == "critical" or .severity == "high")'
  • CI 中推荐结合 composer show --outdated --direct + 已知漏洞数据库比对,而非依赖 audit

尤其要注意:当项目含私有仓库或 fork 包时,audit 可能完全跳过检查 —— 它只校验 Packagist 上已收录的 advisory 记录。

常见错误与兼容性陷阱

实际执行中容易遇到以下问题:

  • Could not fetch advisories: cURL error 60:通常是 CA 证书过期,运行 composer config -g cafile /path/to/cacert.pem 指定新版证书
  • No advisories found 不代表绝对安全,只说明当前 lock 文件中无已知匹配的高危 CVE(例如未收录的 0day 或自定义组件漏洞)
  • PHP 7.4 或更低版本用户无法使用 audit(Composer 2.5+ 要求 PHP ≥ 8.0)
  • 使用 composer install --no-plugins 会跳过 audit 插件加载,导致命令不可见

真正关键的不是命令是否存在,而是你是否把 composer.lock 提交进 Git、是否定期更新依赖、是否在 CI 中阻断含已知 CVE 的构建 —— 这些比记住一个实验命令重要得多。

热门AI工具

更多
DeepSeek
DeepSeek

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

豆包大模型
豆包大模型

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

通义千问
通义千问

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

腾讯元宝
腾讯元宝

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

文心一言
文心一言

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

讯飞写作
讯飞写作

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

即梦AI
即梦AI

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

ChatGPT
ChatGPT

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

相关专题

更多
PHP Symfony框架
PHP Symfony框架

本专题专注于PHP主流框架Symfony的学习与应用,系统讲解路由与控制器、依赖注入、ORM数据操作、模板引擎、表单与验证、安全认证及API开发等核心内容。通过企业管理系统、内容管理平台与电商后台等实战案例,帮助学员全面掌握Symfony在企业级应用开发中的实践技能。

78

2025.09.11

composer是什么插件
composer是什么插件

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

151

2023.12.25

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

418

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

535

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

311

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

77

2025.09.10

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

761

2023.07.31

python中的format是什么意思
python中的format是什么意思

python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

432

2024.06.27

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

10

2026.01.27

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 9.8万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

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

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