Loaded Document Sanitisation

SanitiseLoadedDocument aplica uma política de segurança selecionada ao grafo de objetos carregado completo e prepara uma reescrita completa compact

Profiles

ProfileConteúdo removido
spJavaScriptOnlyName trees de JavaScript do documento e ações JavaScript
spActiveContentJavaScript mais entradas de launch, navegação remota, URI, submissão, importação, multimídia, rendition, XFA e conteúdo ativo relacionado
spUntrustedDocumentTodo conteúdo ativo mais arquivos embutidos, arquivos associados, anotações de anexo de arquivo, estruturas de payload rich media e tipos de ação desconhecidos encontrados em slots que comportam ações
spRichMediaOnlyAnotações rich media e os streams de payload desanexados delas
spRedactionCleanupAnotações Redact e de anexo de arquivo, informações do documento, metadados, arquivos associados e embutidos, e todo objeto tornado inalcançável por essas remoções

Declaração

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

A sobrecarga sem perfil usa spUntrustedDocument

Relatório de resultado

THPDFSanitiseReport conta ações removidas, entradas JavaScript, arquivos embutidos, anotações arriscadas, entradas XFA, streams de payload, referências desanexadas, objetos inalcançáveis, entradas de metadados, anotações Redact, bytes descartados de revisões anteriores e objetos visitados

Changed indica se o grafo de objetos mudou, enquanto LimitExceeded e InvalidObjectGraph explicam um preflight rejeitado

Segurança e desempenho

Exemplo

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