Sanitizacija učitanog dokumenta

SanitiseLoadedDocument primenjuje izabranu bezbednosnu politiku na kompletan učitani graf objekata i priprema kompaktni potpuni prepis

Profili

ProfilUklonjeni sadržaj
spJavaScriptOnlyStabla imena dokumentnog JavaScripta i JavaScript akcije
spActiveContentJavaScript plus launch, udaljena navigacija, URI, slanje, uvoz, multimedijski, rendition, XFA i srodni active-content zapisi
spUntrustedDocumentStabla imena JavaScript-a dokumenta i JavaScript akcije
spRichMediaOnlyJavaScript plus launch, daljinsku navigaciju, URI, slanje, uvoz, multimediju, rendition, XFA i srodne unose aktivnog sadržaja
spRedactionCleanupSav aktivni sadržaj plus ugrađene fajlove, pridružene fajlove, anotacije priloga fajla, strukture rich-media payload-a i nepoznate tipove akcija pronađene u slotovima koji nose akcije

Deklaracija

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

Preopterećenje bez profila koristi spUntrustedDocument

Izveštaj o rezultatu

THPDFSanitiseReport broji uklonjene akcije, JavaScript unose, ugrađene fajlove, rizične anotacije, XFA unose, tokove payload-a, odvojene reference, nedostižne objekte i posećene objekte

Changed ukazuje da li se graf objekata promenio, dok LimitExceeded i InvalidObjectGraph objašnjavaju odbijeni preflight

Bezbednost i performanse

Primer

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;

Napomene o upotrebi

Povezani API