Obsługa danych, PII i telemetrii
W skrócie
Dział zatytułowany „W skrócie”Ta strona opisuje, jak silnik core obsługuje dane: co odczytuje, co przechowuje w pamięci procesu, co zapisuje, jaką deterministyczną transformację usuwania danych osobowych (PII) stosuje do pakietów audytowych oraz na czym polega opcjonalna ścieżka telemetrii.
Granica. Ta strona opisuje zachowanie biblioteki. Miejsce przetwarzania danych na poziomie wdrożenia określa, w której jurysdykcji przetwarzane są dokumenty, gdzie przechowywane są pliki tymczasowe, jak długo przechowywane są dane wyjściowe i który backend telemetrii, jeśli w ogóle, odbiera span-y. Za te wybory odpowiada integrator, a nie biblioteka. Silnik zapewnia bezpieczne ustawienia domyślne (fail-closed) oraz transformację usuwania danych. Nie może podjąć za Ciebie decyzji dotyczącej miejsca przetwarzania danych ani podstawy prawnej.
Instalacja
Dział zatytułowany „Instalacja”composer require nextpdf/core:^3Mechanizm usuwania PII oraz interceptor telemetrii są częścią pakietu core. Ścieżka telemetrii pozostaje nieaktywna, dopóki pakiet SDK OpenTelemetry nie jest obecny i wywołujący nie podłączy interceptora.
Przegląd koncepcyjny
Dział zatytułowany „Przegląd koncepcyjny”Silnik działa jako podmiot przetwarzający dane, które mu przekazujesz, w rozumieniu normy ISO/IEC 29100 (iso_iec_29100#3.x56): operuje na zawartości dokumentu zgodnie z poleceniem integratora. Nie łączy się z serwerami producenta, nie przechowuje zawartości poza danymi wyjściowymi, o które prosisz, ani nie przesyła zawartości dokumentu do żadnego punktu końcowego obsługiwanego przez NextPDF.
Istotne są trzy obszary danych:
- Operacje wejścia/wyjścia (input/output, I/O) dokumentu. Silnik odczytuje dane wejściowe ze wskazanej ścieżki lub strumienia i zapisuje dane wyjściowe do wskazanej ścieżki lub strumienia. Bufory pośrednie pozostają w pamięci procesu przez czas trwania renderowania i są zwalniane po jego zakończeniu.
- Pakiety audytowe. Gdy audyt jest włączony, silnik może wygenerować pakiet diagnostyczny. Przed serializacją pakiet ten przechodzi przez deterministyczny mechanizm usuwania PII.
- Telemetria. Opcjonalny interceptor OpenTelemetry może emitować span-y i metryki. Pozostaje wyłączony, dopóki nie zostanie zainstalowany pakiet SDK i utworzony interceptor; atrybuty span-ów przechodzą przez mechanizm sanityzacji atrybutów.
Podejście do prywatności jest zgodne z art. 32 RODO, zgodnie z którym pseudonimizacja i minimalizacja są przykładowymi środkami zabezpieczającymi. Za stosowanie tych środków odpowiada administrator (eu_gdpr#x50). Biblioteka udostępnia mechanizm usuwania danych. Administrator decyduje o podstawie prawnej, okresie przechowywania i miejscu przetwarzania danych.
Powierzchnia API
Dział zatytułowany „Powierzchnia API”Ta strona nie dokumentuje ponownie interfejsów API audytu ani telemetrii (zobacz /modules/core/audit/). Z punktu widzenia zaufania istotne są dwa komponenty: domyślny sanitizer PII stosowany do pakietów audytowych oraz sanitizer atrybutów interceptora OpenTelemetry. Poniższe sekcje opisują ich działanie, a nie sygnatury.
Przykład kodu — szybki start
Dział zatytułowany „Przykład kodu — szybki start”Domyślnie nic nie opuszcza procesu, dopóki o to nie poprosisz. Żaden kod nie włącza wychodzącego ruchu sieciowego; ustawieniem domyślnym jest brak takiego kodu:
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Core\Document;
// Input read from disk, output written to disk. No telemetry SDK loaded,// so the telemetry path completes in sub-microsecond no-ops. No content// is transmitted anywhere.$doc = Document::open('input.pdf');$doc->save('output.pdf');Przykład kodu — produkcja
Dział zatytułowany „Przykład kodu — produkcja”Gdy tworzony jest pakiet audytowy, deterministyczny mechanizm usuwania PII maskuje typowe kategorie przed serializacją. Transformacja jest czysta (bez zegarów, bez losowości), więc dla danego wejścia pakiet zachowuje stabilną postać bajtową:
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use NextPDF\Audit\DefaultPiiSanitiser;
$scrubber = new DefaultPiiSanitiser();// E-mail → [EMAIL], IPv4 → [IPV4], IPv6 → [IPV6], X.500 DN attributes// beyond CN → keyword preserved, value [REDACTED]. Deterministic.$safe = $scrubber->sanitise($rawAuditField);Przypadki brzegowe i pułapki
Dział zatytułowany „Przypadki brzegowe i pułapki”- Mechanizm usuwania danych działa w trybie best effort, nie jest gwarancją.
DefaultPiiSanitisermaskuje znane mu kategorie: adresy e-mail wg RFC 5321, IPv4/IPv6 oraz kilka atrybutów nazwy wyróżniającej (DN) wg RFC 4514. Pole tekstu swobodnego zawierające imię, nazwisko lub identyfikator spoza tych wzorców nie jest maskowane. Traktuj mechanizm usuwania danych jako warstwę obrony w głąb, a nie jako mechanizm zapewnienia zgodności, który eliminuje obowiązek przeglądu po stronie operatora. - Pliki tymczasowe są kwestią wdrożeniową. Silnik stosuje bezpieczną obsługę plików tymczasowych. To, gdzie znajduje się katalog
TMPDIR, oraz to, czy katalogTMPDIRznajduje się na zaszyfrowanym nośniku we właściwej jurysdykcji, są decyzjami wdrożeniowymi. Biblioteka nie jest w stanie wymusić miejsca przetwarzania danych. - Telemetria jest opcjonalna i sanityzowana, ale nie jest pozbawiona ryzyka. Po podłączeniu interceptor OpenTelemetry przepuszcza atrybuty span-ów przez sanitizer atrybutów, który wymusza politykę danych zero-trust. Backend, do którego eksportujesz dane, a także jego okres przechowywania i lokalizacja, są całkowicie wyborem integratora.
- Podstawa prawna nie jest decyzją biblioteki. Administrator ustala, czy przetwarzanie danego dokumentu jest zgodne z prawem i na jakiej podstawie, w świetle RODO / prawa lokalnego (
eu_gdpr#x50); biblioteka nie ma do tego wglądu.
Wydajność
Dział zatytułowany „Wydajność”Mechanizm usuwania PII korzysta z czystych transformacji wyrażeń regularnych bez operacji I/O. Interceptor telemetrii sprawdza obecność pakietu SDK jednorazowo podczas tworzenia i buforuje wynik. Gdy żaden pakiet SDK nie jest zainstalowany, każde wywołanie telemetrii kończy się w czasie krótszym niż mikrosekunda, dlatego ustawienie domyślne chroniące prywatność (telemetria wyłączona) jest jednocześnie ustawieniem bez narzutu.
Uwagi dotyczące bezpieczeństwa
Dział zatytułowany „Uwagi dotyczące bezpieczeństwa”Dla recenzentów obowiązują następujące reguły wyznaczające granice obsługi danych:
- Brak ukrytego ruchu wychodzącego. Silnik nie przesyła żadnej zawartości dokumentu do żadnego punktu końcowego obsługiwanego przez NextPDF. Wychodzący dostęp do sieci następuje wyłącznie przy jawnie włączonych pobieraniach zasobów ograniczonych do określonych schematów oraz przy skonfigurowanych punktach końcowych urzędu znaczników czasu (TSA), protokołu sprawdzania statusu certyfikatu online (OCSP) oraz listy unieważnionych certyfikatów (CRL), z których każdy jest chroniony zabezpieczeniem przed atakami typu server-side request forgery (SSRF).
- Deterministyczne, ograniczone usuwanie danych. Transformacja PII pakietu audytowego jest deterministyczna i działa przed serializacją. Stanowi narzędzie wspomagające minimalizację w duchu art. 32 RODO (
eu_gdpr#x50), nie zaś certyfikat anonimizacji. - Miejsce przetwarzania danych należy do integratora. Inwentaryzacja i mapowanie miejsc przetwarzania danych to działania organizacyjne zgodne z NIST Privacy Framework (
nist_privacy_framework_1_1#x9.x1.p3); biblioteka udostępnia mechanizmy kontroli, a integrator wykonuje mapowanie. - Role są zewnętrzne. To, czy wdrożenie jest administratorem, czy podmiotem przetwarzającym, oraz jakie obowiązki z tego wynikają, jest elementem określenia ról według normy ISO/IEC 29100 (
iso_iec_29100#3.x56), którego biblioteka nie może dokonać.
Zgodność
Dział zatytułowany „Zgodność”Ta strona nie jest profilem zgodności. Odwołuje się do art. 32 RODO, normy ISO/IEC 29100 oraz NIST Privacy Framework, aby wyznaczyć granicę między zachowaniem biblioteki a odpowiedzialnością administratora. Nie potwierdza zgodności z RODO, zgodności z normą ISO/IEC 29100 ani żadnej certyfikacji w zakresie prywatności. Takich ustaleń dokonuje administrator danych na poziomie wdrożenia, a nie biblioteka.