Saneamiento de documentos cargados

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

Perfiles

PerfilContenido eliminado
spJavaScriptOnlyÁrboles de nombres JavaScript de documento y acciones JavaScript
spActiveContentJavaScript más entradas de lanzamiento, navegación remota, URI, envío, importación, multimedia, rendition, XFA y contenidos activos relacionados
spUntrustedDocumentTodo el contenido activo más archivos incrustados, archivos asociados, anotaciones de adjunto de archivo, estructuras de carga rich-media y tipos de acción desconocidos encontrados en ranuras con acciones
spRichMediaOnlyAnotaciones rich-media y sus streams de carga desvinculados
spRedactionCleanupAnotaciones de redacción y de adjunto de archivo, información del documento, metadatos, archivos asociados e incrustados, y todo objeto hecho inalcanzable por esas eliminaciones

Declaración

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

La sobrecarga sin perfil usa spUntrustedDocument

Informe del resultado

THPDFSanitiseReport cuenta las acciones eliminadas, entradas JavaScript, archivos incrustados, anotaciones de riesgo, entradas XFA, streams de carga, referencias desvinculadas, objetos inalcanzables, entradas de metadatos, anotaciones Redact, bytes de revisiones previas descartados y objetos visitados

Changed indica si el grafo de objetos cambió, mientras que LimitExceeded y 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