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). Zgodnie z CRA SBOM sporządza producent produktu z elementami cyfrowymi (załącznik I część II), a nie sklep, który tylko sprzedaje towary. SBOM bywa też załącznikiem do audytów bezpieczeństwa, a jego struktura CycloneDX jest akceptowana przez skanery podatności (Trivy, Dependency-Track, OWASP DT).
Co jest skanowane
Dział zatytułowany „Co jest skanowane”| Źródło | Zakres |
|---|---|
vendor/composer/installed.json |
Pakiety PHP dostarczane w paczce wtyczki |
composer.lock |
Pakiety PHP z sekcji packages (scope required) i packages-dev (scope optional), tylko w kopii deweloperskiej |
package-lock.json |
Pakiety npm z mapy packages (npm v7+), tylko w kopii deweloperskiej. Opublikowana paczka nie ma tego pliku, więc biblioteki JavaScript dołączone do skryptów wtyczki nie są wymieniane |
| Nagłówek wtyczki | Metadane 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>"}}.
Pobieranie
Dział zatytułowany „Pobieranie”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
Przykładowy fragment
Dział zatytułowany „Przykładowy fragment”{ "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"}}] } ]}Uprawnienia
Dział zatytułowany „Uprawnienia”Dostęp do strony i pobranie: manage_woocommerce. Działanie oparte o admin_post + nonce polski_sbom_download.
Importy
Dział zatytułowany „Importy”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)
Ograniczenia
Dział zatytułowany „Ograniczenia”- 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ą jakoidw niezmienionej formie - Nie wykrywa zależności spoza
vendor/composer/installed.json,composer.lockipackage-lock.json; bibliotek JavaScript dołączonych do skryptów wtyczki nie wymienia