Bereinigung geladener Dokumente

SanitiseLoadedDocument wendet eine ausgewählte Sicherheitsrichtlinie auf den vollständigen geladenen Objektgraphen an und bereitet ein kompaktes vollständiges Umschreiben vor

Profile

ProfilRemoved content
spJavaScriptOnlyJavaScript-Namensbäume des Dokuments und JavaScript-Aktionen
spActiveContentJavaScript plus Launch, ferne Navigation, URI, Submission, Import, Multimedia, Rendition, XFA und zugehörige Active-Content-Einträge
spUntrustedDocumentAlle aktiven Inhalte plus eingebettete Dateien, zugeordnete Dateien, Dateianhang-Anmerkungen, Rich-Media-Payload-Strukturen und unbekannte Aktionstypen in aktionstragenden Slots
spRichMediaOnlyRich-Media-Anmerkungen und ihre abgetrennten Payload-Streams
spRedactionCleanupRedact- und Dateianhang-Anmerkungen, Dokumentinformationen, Metadaten, zugeordnete und eingebettete Dateien sowie jedes Objekt, das durch diese Entfernungen unerreichbar wird

Deklaration

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

Die Überladung ohne Profil verwendet spUntrustedDocument

Ergebnisbericht

THPDFSanitiseReport zählt entfernte Aktionen, JavaScript-Einträge, eingebettete Dateien, riskante Annotationen, XFA-Einträge, Payload-Streams, losgelöste Referenzen, unerreichbare Objekte und besuchte Objekte

Changed gibt an, ob sich der Objektgraph geändert hat, während LimitExceeded und InvalidObjectGraph einen abgelehnten Preflight erklären

Sicherheit und Leistung

Beispiel

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;

Verwendungshinweise

Verwandte APIs