View a markdown version of this page

什么是程序包 URL? - Amazon Inspector
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

什么是程序包 URL?

程序包 URL 或 PURL 是一种标准化格式,用于在不同的程序包管理系统中识别软件程序包、组件和库。该格式使跟踪、分析和管理软件项目中的依赖关系变得更加容易,尤其是在生成软件物料清单 (SBOMs) 时。

PURL 结构

PURL 结构类似于 URL,由多个部分组成:

  • pkg – 文本前缀

  • type – 程序包类型

  • namespace – 分组

  • name – 程序包名称

  • version – 程序包版本

  • qualifiers – 额外的键值对

  • subpath – 程序包中的文件路径

PURL 示例

以下是 PURL 可能呈现形式的示例。

pkg:<type>/<namespace>/<name>@<version>?<qualifiers>#<subpath>

通用 PURL

通用 PURL 用于表示不属于已建立程序包生态系统的软件程序包和组件,例如 npm、pypi 或 maven。它可以识别软件组件,并捕获可能与特定程序包管理系统不一致的元数据。通用 PURL 可用于各种软件项目,从已编译的二进制文件到平台,不一而足,例如 Apache 和 WordPress。可将其应用于各种使用案例,包括编译后的二进制文件、Web 平台和自定义软件发行版。

关键使用案例

  • 支持编译后的二进制文件,对 Go 和 Rust 很有用

  • 支持 Web 平台,例如 Apache 和 WordPress,其中程序包可能与传统程序包管理器无关联。

  • 通过允许组织参考内部开发的软件或缺少正式程序包的系统,从而支持自定义旧版软件。

格式示例

以下是通用 PURL 格式的示例。

pkg:generic/<namespace>/<name>@<version>?<qualifiers>

通用 PURL 格式的其他示例

以下是通用 PURL 格式的其他示例。

编译后的 Go 二进制文件

以下表示使用 Go 编译的 inspector-sbomgen binary

pkg:generic/inspector-sbomgen?go_toolchain=1.22.5
编译后的 Rust 二进制文件

以下表示使用 Rust 编译的 myrustapp 二进制文件。

pkg:generic/myrustapp?rust_toolchain=1.71.0
Apache 项目

以下指的是 Apache 命名空间下的一个 http 项目。

pkg:generic/apache/httpd@1.0.0
WordPress 软件

以下指的是核心 WordPress 软件。

pkg:generic/wordpress/core/wordpress@6.0.0
WordPress 主题

以下指的是自定义 WordPress 主题。

pkg:generic/wordpress/theme/mytheme@1.0.0
WordPress 插件

以下指的是自定义 WordPress 插件。

pkg:generic/wordpress/plugin/myplugin@1.0.0