Bỏ qua để đến nội dung

Xử lý dữ liệu, PII và telemetry

Trang này mô tả cách core engine xử lý dữ liệu: engine đọc những gì, giữ những gì trong bộ nhớ tiến trình, ghi những gì, phép biến đổi loại bỏ thông tin nhận dạng cá nhân (PII) có tính xác định mà engine áp dụng cho các audit bundle, và đường dẫn telemetry tùy chọn.

Ranh giới. Trang này mô tả hành vi của thư viện. Tính cư trú dữ liệu ở cấp triển khai bao gồm việc khu vực tài phán nào xử lý tài liệu của bạn, nơi tệp tạm được lưu trữ, đầu ra được giữ lại trong bao lâu, và backend telemetry nào, nếu có, nhận các span. Những lựa chọn đó là trách nhiệm của bên tích hợp, không phải của thư viện. Engine cung cấp cho bạn các mặc định fail-closed và một phép biến đổi loại bỏ. Engine không thể đưa ra quyết định về cư trú dữ liệu hay cơ sở pháp lý thay cho bạn.

Terminal window
composer require nextpdf/core:^3

Bộ loại bỏ PII và interceptor telemetry là một phần của gói core. Đường dẫn telemetry vẫn không hoạt động trừ khi có một OpenTelemetry SDK và bên gọi kết nối interceptor.

Engine hoạt động như một bên xử lý đối với dữ liệu bạn giao cho nó, theo nghĩa của ISO/IEC 29100 (iso_iec_29100#3.x56): engine xử lý nội dung tài liệu theo chỉ dẫn của bên tích hợp. Engine không gửi dữ liệu về máy chủ, không lưu giữ nội dung ngoài đầu ra mà bạn yêu cầu, và không truyền nội dung tài liệu đến bất kỳ endpoint nào do NextPDF vận hành.

Có ba bề mặt dữ liệu quan trọng:

  1. Vào/ra tài liệu input/output (I/O). Engine đọc đầu vào từ đường dẫn hoặc luồng mà bạn cung cấp và ghi đầu ra vào đường dẫn hoặc luồng mà bạn cung cấp. Các buffer trung gian được giữ trong bộ nhớ tiến trình trong suốt quá trình kết xuất và được giải phóng khi quá trình hoàn tất.
  2. Audit bundle. Khi audit được bật, engine có thể phát ra một bundle chẩn đoán. Trước khi được serialize, bundle đó đi qua một bộ loại bỏ PII có tính xác định.
  3. Telemetry. Một interceptor OpenTelemetry tùy chọn có thể phát ra các span và metric. Nó vẫn tắt trừ khi SDK được cài đặt và interceptor được khởi tạo; các thuộc tính span đi qua một bộ làm sạch thuộc tính.

Định hướng quyền riêng tư tuân theo nguyên tắc của GDPR Điều 32: giả danh hóa và giảm thiểu là những ví dụ về biện pháp bảo vệ. Việc áp dụng các biện pháp bảo vệ đó là trách nhiệm của bên kiểm soát (eu_gdpr#x50). Thư viện cung cấp cơ chế loại bỏ. Bên kiểm soát quyết định cơ sở pháp lý, thời gian lưu giữ và tính cư trú.

Trang này không trình bày lại tài liệu về các API audit hoặc telemetry (xem /modules/core/audit/). Các thành phần liên quan đến độ tin cậy gồm bộ làm sạch PII mặc định được áp dụng cho các audit bundle và bộ làm sạch thuộc tính của interceptor OpenTelemetry. Các phần bên dưới mô tả tác dụng của chúng, không phải signature của chúng.

Theo mặc định, không có gì rời khỏi tiến trình trừ khi bạn yêu cầu. Không có đoạn mã nào bật luồng ra mạng; chính việc không có mã là mặc định:

<?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');

Khi một audit bundle được tạo ra, bộ loại bỏ PII có tính xác định sẽ che các loại thông tin thông dụng trước khi serialize. Phép biến đổi này là thuần túy (không dùng đồng hồ, không có yếu tố ngẫu nhiên), vì vậy với một đầu vào cho trước, bundle sẽ ổn định ở cấp byte:

<?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);

Trường hợp đặc biệt & điểm cần lưu ý

Phần tiêu đề “Trường hợp đặc biệt & điểm cần lưu ý”
  • Bộ loại bỏ hoạt động theo nỗ lực tốt nhất, không phải là một bảo đảm. DefaultPiiSanitiser che các loại thông tin mà nó biết: e-mail theo RFC 5321, IPv4/IPv6, và một số thuộc tính tên phân biệt (DN) theo RFC 4514. Một trường văn bản tự do chứa tên hoặc định danh nằm ngoài các mẫu đó sẽ không được che. Hãy xem bộ loại bỏ như một lớp phòng thủ theo chiều sâu, không phải là một biện pháp kiểm soát tuân thủ có thể loại bỏ nghĩa vụ rà soát của người vận hành.
  • Tệp tạm là việc của bên triển khai. Engine sử dụng cơ chế xử lý tệp tạm an toàn. TMPDIR của bạn nằm ở đâu, và liệu TMPDIR có nằm trên bộ lưu trữ được mã hóa thuộc đúng khu vực tài phán hay không, đều là quyết định triển khai. Thư viện không thể bắt buộc tính cư trú dữ liệu.
  • Telemetry là tùy chọn và được làm sạch, nhưng vẫn có rủi ro. Khi được kết nối, interceptor OpenTelemetry đưa các thuộc tính span qua một bộ làm sạch thuộc tính áp dụng chính sách dữ liệu zero-trust. Backend mà bạn xuất dữ liệu đến, cùng với thời gian lưu giữ và vị trí của nó, hoàn toàn là lựa chọn của bên tích hợp.
  • Cơ sở pháp lý không phải là quyết định của thư viện. Bên kiểm soát xác định liệu việc xử lý một tài liệu nhất định có hợp pháp hay không, và dựa trên cơ sở nào, theo GDPR / luật địa phương (eu_gdpr#x50); thư viện không có khả năng nhìn thấy điều đó.

Bộ loại bỏ PII sử dụng các phép biến đổi regex thuần túy, không có I/O. Interceptor telemetry kiểm tra sự hiện diện của SDK một lần tại thời điểm khởi tạo và lưu kết quả vào cache. Khi không có SDK nào được cài đặt, mọi lệnh gọi telemetry đều hoàn tất trong thời gian dưới một micro giây, vì vậy mặc định bảo vệ quyền riêng tư (telemetry tắt) cũng là mặc định không gây thêm chi phí.

Đối với người rà soát, các quy tắc về ranh giới xử lý dữ liệu là:

  1. Không có luồng ra ngầm. Engine không truyền bất kỳ nội dung tài liệu nào đến endpoint do NextPDF vận hành. Truy cập mạng ra ngoài chỉ xảy ra với các thao tác lấy tài nguyên được bật rõ ràng và bị giới hạn scheme, cùng với các endpoint time-stamp authority (TSA), Online Certificate Status Protocol (OCSP) và certificate revocation list (CRL) đã được cấu hình; mỗi loại đều nằm sau bộ bảo vệ chống giả mạo yêu cầu phía máy chủ (SSRF).
  2. Loại bỏ có tính xác định, có giới hạn. Phép biến đổi PII cho audit bundle có tính xác định và chạy trước khi serialize. Nó là một công cụ hỗ trợ giảm thiểu theo tinh thần của GDPR Điều 32 (eu_gdpr#x50), không phải là một chứng nhận ẩn danh hóa.
  3. Tính cư trú là việc của bên tích hợp. Việc kiểm kê và lập sơ đồ nơi dữ liệu được xử lý là các hoạt động ở cấp tổ chức theo NIST Privacy Framework (nist_privacy_framework_1_1#x9.x1.p3); thư viện cung cấp các biện pháp kiểm soát, còn bên tích hợp thực hiện việc lập sơ đồ đó.
  4. Các vai trò nằm bên ngoài. Việc bên triển khai là bên kiểm soát hay bên xử lý, và những nghĩa vụ nào phát sinh từ đó, là một xác định vai trò theo ISO/IEC 29100 (iso_iec_29100#3.x56) mà thư viện không thể đưa ra.

Đây không phải là một hồ sơ phù hợp. Trang này tham chiếu đến GDPR Điều 32, ISO/IEC 29100 và NIST Privacy Framework để xác định ranh giới giữa hành vi của thư viện và trách nhiệm của bên kiểm soát. Nó không khẳng định việc tuân thủ GDPR, sự phù hợp với ISO/IEC 29100, hay bất kỳ chứng nhận quyền riêng tư nào. Bên kiểm soát dữ liệu đưa ra những xác định đó ở cấp triển khai, không phải thư viện.