Sanityzacja wczytanego dokumentu

SanitiseLoadedDocument stosuje wybraną politykę bezpieczeństwa do pełnego wczytanego grafu obiektów i przygotowuje kompaktowe pełne przepisanie

Profile

ProfilUsuana treść
spJavaScriptOnlyDrzewa nazw JavaScript dokumentu i akcje JavaScript
spActiveContentJavaScript plus wpisy launch, nawigacji zdalnej, URI, submission, import, multimedia, rendition, XFA i powiązana aktywna treść
spUntrustedDocumentCała aktywna treść plus pliki osadzone, pliki skojarzone, adnotacje file-attachment, struktury payloadów rich media i nieznane typy akcji znalezione w slotach z akcjami
spRichMediaOnlyAdnotacje rich media i ich odłączone strumienie payloadów
spRedactionCleanupAdnotacje redact i file-attachment, informacje o dokumencie, metadane, pliki skojarzone i osadzone oraz każdy obiekt, który przez te usunięcia stał się nieosiągalny

Deklaracja

function SanitiseLoadedDocument(Profile: THPDFSanitiseProfile;
  out Report: THPDFSanitiseReport): Boolean; overload;
function SanitiseLoadedDocument(
  out Report: THPDFSanitiseReport): Boolean; overload;

Przeciążenie bez profilu używa spUntrustedDocument

Result report

THPDFSanitiseReport zlicza usunięte akcje, wpisy JavaScript, osadzone pliki, ryzykowne adnotacje, wpisy XFA, strumienie ładunków, odłączone odwołania, nieosiągalne obiekty i odwiedzone obiekty

Changed wskazuje, czy graf obiektów uległ zmianie, podczas gdy LimitExceeded i InvalidObjectGraph wyjaśniają odrzucony preflight

Bezpieczeństwo i wydajność

Przykład

var
  Report: THPDFSanitiseReport;
begin
  PDF.LoadFromFile('untrusted.pdf');
  if not PDF.SanitiseLoadedDocument(spUntrustedDocument, Report) then
    raise Exception.Create('Document sanitisation was rejected');
  PDF.SaveLoadedDocument('sanitised.pdf');
end;

Uwagi dotyczące użycia

Powiązane API