Przejdź do głównej zawartości

Generator SBOM (Software Bill of Materials)

Moduł SBOM generuje dokument CycloneDX 1.4 JSON opisujący zależności wtyczki Polski for WooCommerce (oraz Polski Pro, jeśli zainstalowane). SBOM jest coraz częściej wymaganym załącznikiem do audytów bezpieczeństwa i pakietów dokumentacyjnych CRA, a jego struktura CycloneDX jest akceptowana przez skanery podatności (Trivy, Dependency-Track, OWASP DT).

ŹródłoZakres
composer.lockPakiety PHP z sekcji packages (scope required) i packages-dev (scope optional)
package-lock.jsonPakiety npm z mapy packages (npm v7+); flaga dev -> scope optional
Nagłówek wtyczkiMetadane komponentu aplikacji: name, version, publisher: WPPoland

Dla każdego pakietu budowany jest purl (Package URL) w formacie:

  • PHP: pkg:composer/<vendor>/<name>@<version>
  • JS: pkg:npm/<name>@<version>

Licencje są normalizowane do tablicy {license: {id: "<SPDX>"}}.

Przejdź do Polski > SBOM i kliknij Download SBOM (JSON) przy wybranym targecie (FREE lub PRO). Plik:

  • Nazwa: <slug>-sbom-<version>-<timestamp>.cdx.json
  • Content-Type: application/vnd.cyclonedx+json; charset=utf-8
  • Content-Disposition: attachment
{
"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",
"purl": "pkg:composer/symfony/[email protected]",
"licenses": [{"license": {"id": "MIT"}}]
}
]
}

Dostęp do strony i pobranie: manage_woocommerce. Działanie oparte o admin_post + nonce polski_sbom_download.

Wygenerowany plik możesz bezpośrednio zaimportować do:

  • Dependency-Track (File Upload lub REST /api/v1/bom)
  • Trivy (trivy sbom <file>.cdx.json)
  • Grype (grype sbom:<file>.cdx.json)
  • OWASP CycloneDX CLI (cyclonedx validate)
  • SBOM opisuje tylko jeden katalog wtyczki; nie agreguje całego WordPressa
  • Brak rozdziału hashy plików (hashes) - dodawany będzie w PRO
  • Licencje nienormalizowane (np. MIT OR Apache-2.0) trafiają jako id w niezmienionej formie
  • Nie wykrywa zależności pobranych poza composer.lock / package-lock.json