Генератор SBOM (Software Bill of Materials)
Модуль SBOM генерує документ CycloneDX 1.4 JSON, що описує залежності плагіна Polski for WooCommerce (а також Polski Pro, якщо встановлено). SBOM дедалі частіше є обовʼязковим додатком до аудитів безпеки та пакетів документації CRA, а його структура CycloneDX приймається сканерами вразливостей (Trivy, Dependency-Track, OWASP DT).
Що сканується
Section titled “Що сканується”| Джерело | Обсяг |
|---|---|
composer.lock | Пакети PHP із секції packages (scope required) та packages-dev (scope optional) |
package-lock.json | Пакети npm з мапи packages (npm v7+); прапорець dev -> scope optional |
| Заголовок плагіна | Метадані компонента застосунку: name, version, publisher: WPPoland |
Для кожного пакета будується purl (Package URL) у форматі:
- PHP:
pkg:composer/<vendor>/<name>@<version> - JS:
pkg:npm/<name>@<version>
Ліцензії нормалізуються до масиву {license: {id: "<SPDX>"}}.
Завантаження
Section titled “Завантаження”Перейдіть до Polski > SBOM і натисніть Download SBOM (JSON) біля обраної цілі (FREE або PRO). Файл:
- Назва:
<slug>-sbom-<version>-<timestamp>.cdx.json - Content-Type:
application/vnd.cyclonedx+json; charset=utf-8 - Content-Disposition:
attachment
Приклад фрагмента
Section titled “Приклад фрагмента”{ "bomFormat": "CycloneDX", "specVersion": "1.4", "serialNumber": "urn:uuid:8f3a...", "version": 1, "metadata": { "timestamp": "2026-04-19T09:00:00+00:00", "tools": [{"vendor": "WPPoland", "name": "Polski SBOM generator", "version": "1.0"}], "component": { "type": "application", "bom-ref": "wppoland/polski", "name": "polski", "version": "2.1.0", "publisher": "WPPoland" } }, "components": [ { "type": "library", "bom-ref": "composer:symfony/console", "name": "symfony/console", "version": "6.4.0", "scope": "required", "licenses": [{"license": {"id": "MIT"}}] } ]}Дозволи
Section titled “Дозволи”Доступ до сторінки та завантаження: manage_woocommerce. Робота заснована на admin_post + nonce polski_sbom_download.
Імпорти
Section titled “Імпорти”Згенерований файл можна безпосередньо імпортувати до:
- Dependency-Track (File Upload або REST
/api/v1/bom) - Trivy (
trivy sbom <file>.cdx.json) - Grype (
grype sbom:<file>.cdx.json) - OWASP CycloneDX CLI (
cyclonedx validate)
Обмеження
Section titled “Обмеження”- SBOM описує лише один каталог плагіна; він не агрегує весь WordPress
- Відсутній розділ хешів файлів (
hashes), він буде доданий у PRO - Ненормалізовані ліцензії (наприклад,
MIT OR Apache-2.0) потрапляють якidу незмінному вигляді - Не виявляє залежностей, завантажених поза
composer.lock/package-lock.json