Sanitizace načteného dokumentu

SanitiseLoadedDocument aplikuje vybranou bezpečnostní politiku na kompletní graf načtených objektů a připraví kompaktní úplné přepsání

Profily

ProfilOdstraněný obsah
spJavaScriptOnlyName tree JavaScriptu dokumentu a JavaScript akce
spActiveContentJavaScript plus launch, vzdálená navigace, URI, submission, import, multimedia, rendition, XFA a související položky aktivního obsahu
spUntrustedDocumentVeškerý aktivní obsah plus vložené soubory, přidružené soubory, anotace příloh souborů, struktury payloadů rich-media a neznámé typy akcí nalezené v slotech nesoucích akce
spRichMediaOnlyAnotace rich-media a jejich odpojené payloadové streamy
spRedactionCleanupAnotace Redact a příloh souborů, informace o dokumentu, metadata, přidružené a vložené soubory a každý objekt, který se těmito odstraněními stal nedosažitelným

Deklarace

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

Přetížení bez profilu používá spUntrustedDocument

Výsledný report

THPDFSanitiseReport počítá odstraněné akce, položky JavaScriptu, vložené soubory, riskantní anotace, položky XFA, payloadové streamy, odpojené reference, nedosažitelné objekty, položky metadat, anotace Redact, zahozené bajty dřívějších revizí a navštívené objekty

Changed indikuje, zda se graf objektů změnil, zatímco LimitExceeded a InvalidObjectGraph vysvětlují odmítnutý preflight

Bezpečnost a výkon

Příklad

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;

Poznámky k použití

Související API