Saneamiento de documento cargado

SanitiseLoadedDocument aplica una política de seguridad seleccionada al grafo de objetos cargado completo y prepara una reescritura completa compacta

Perfiles

ProfileRemoved content
spJavaScriptOnlyDocument JavaScript name trees and JavaScript actions
spActiveContentJavaScript plus launch, remote navigation, URI, submission, import, multimedia, rendition, XFA, and related active-content entries
spJavaScriptOnlyÁrboles de nombres de JavaScript del documento y acciones de JavaScript
spActiveContentJavaScript más entradas de lanzamiento, navegación remota, URI, envío, importación, multimedia, rendition, XFA y contenido activo relacionado
spUntrustedDocumentTodo el contenido activo más archivos embebidos, archivos asociados, anotaciones de adjunto de archivo, estructuras de payload multimedia enriquecido y tipos de acción desconocidos en ranuras que admiten acciones

Declaración

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

La sobrecarga sin perfil usa spUntrustedDocument

Informe de resultado

THPDFSanitiseReport cuenta las acciones eliminadas, entradas de JavaScript, archivos embebidos, anotaciones riesgosas, entradas XFA, flujos de payload, referencias separadas, objetos inalcanzables y objetos visitados

Changed indica si el grafo de objetos cambió, mientras que LimitExceeded e InvalidObjectGraph explican un preflight rechazado

Seguridad y rendimiento

Ejemplo

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;

Notas de uso

APIs relacionadas