在php项目中,我们常常通过 composer 引入大量依赖。从一个简单的日志库到复杂的框架,这些组件构成了我们应用程序的基石。然而,随着项目规模的扩大和依赖数量的增加,一个令人头疼的问题浮出水面:我们对项目所使用的所有组件缺乏清晰的可见性。
试想一下,当一个核心依赖被爆出严重安全漏洞时,你能在第一时间知道你的哪些项目受到了影响吗?或者,你的客户要求你提供一份详细的软件成分清单,以满足合规性要求时,你是否能迅速、准确地提供?手动去检查
composer.json
composer.lock
为了解决这种“失控”的局面,软件物料清单(Software Bill of Materials,简称 SBOM)的概念应运而生。你可以把它想象成食品包装上的“成分表”:它详细列出了一个软件产品中包含的所有组件,包括它们的名称、版本、供应商、许可证信息、哈希值等关键数据。
SBOM 的核心价值在于提供透明度和可追溯性。通过一份标准的 SBOM,你可以:
在众多 SBOM 标准中,CycloneDX 因其轻量级、机器可读且专注于软件供应链安全而广受欢迎。它以 JSON 或 XML 格式输出,方便工具链的自动化处理。
立即学习“PHP免费学习笔记(深入)”;
cyclonedx/cyclonedx-php-composer
那么,如何在我们的PHP项目中轻松生成符合 CycloneDX 标准的 SBOM 呢?答案就是
cyclonedx/cyclonedx-php-composer
cyclonedx/cyclonedx-php-composer
作为全局 Composer 插件安装: 如果你希望在所有 PHP 项目中都能使用这个工具,或者你的CI/CD环境需要它,那么全局安装是最佳选择。
<pre class="brush:php;toolbar:false;">composer global require cyclonedx/cyclonedx-php-composer
作为当前项目的开发依赖安装: 如果你只希望在特定项目中使用,并将其版本锁定在
composer.json
<pre class="brush:php;toolbar:false;">composer require --dev cyclonedx/cyclonedx-php-composer
请注意,该插件要求 PHP
^8.1
^2.3
安装成功后,你就可以在项目目录下使用
composer CycloneDX:make-sbom
以下是一些常用选项的介绍及示例:
--output-format={JSON|XML}--output-file=OUTPUT-FILE
-
--omit={dev|plugin}--omit=dev
--spec-version={1.1|1.2|1.3|1.4|1.5|1.6}--validate|--no-validate
--output-reproducible
一个实际的生成命令示例:
假设你希望生成一个 JSON 格式的 SBOM 文件,命名为
sbom.json
<pre class="brush:php;toolbar:false;">composer CycloneDX:make-sbom --output-format=JSON --output-file=sbom.json --omit=dev --spec-version=1.4 --validate
执行后,你的项目根目录下就会生成一个
sbom.json
cyclonedx/cyclonedx-php-composer
composer.json
composer.lock
将
cyclonedx/cyclonedx-php-composer
在软件供应链安全日益重要的今天,仅仅依靠传统的安全措施已经远远不够。了解你软件的“成分”是构建可信赖软件的第一步。
cyclonedx/cyclonedx-php-composer
如果你还在为 PHP 项目的依赖管理、安全审计和合规性而烦恼,那么不妨现在就将
cyclonedx/cyclonedx-php-composer
以上就是如何保障PHP项目依赖安全与透明?使用Composer生成CycloneDXSBOM助你构建可信软件供应链的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号