Assainissement des documents chargés

SanitiseLoadedDocument applique une politique de sécurité sélectionnée à l’ensemble du graphe d’objets chargé et prépare une réécriture complète compacte

Profils

ProfilContenu supprimé
spJavaScriptOnlyArbres de noms JavaScript du document et actions JavaScript
spActiveContentJavaScript plus lancement, navigation distante, URI, soumission, importation, multimédia, rendition, XFA et entrées de contenu actif associées
spUntrustedDocumentTout le contenu actif plus les fichiers embarqués, les fichiers associés, les annotations de pièce jointe, les structures de charge utile de média enrichi et les types d’actions inconnus trouvés dans les emplacements porteurs d’actions
spRichMediaOnlyAnnotations riches en médias et leurs flux de charge utile détachés
spRedactionCleanupAnnotations de caviardure et de pièce jointe, informations du document, métadonnées, fichiers associés et embarqués, et tout objet rendu inaccessible par ces retraits

Déclaration

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

La surcharge sans profil utilise spUntrustedDocument

Rapport de résultat

THPDFSanitiseReport compte les actions supprimées, les entrées JavaScript, les fichiers embarqués, les annotations risquées, les entrées XFA, les flux de charge utile, les références détachées, les objets inaccessibles et les objets visités

Changed indique si le graphe d’objets a changé, tandis que LimitExceeded et InvalidObjectGraph expliquent un pré-vol refusé

Sûreté et performances

Exemple

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;

Notes d’utilisation

API associées