Sanitização de Documento Carregado

SanitiseLoadedDocument aplica uma política de segurança selecionada ao gráfico de objetos carregado completo e prepara uma reescrita completa compacta

Perfis

PerfilConteúdo removido
spJavaScriptOnlyÁrvores de nomes de JavaScript do documento e ações JavaScript
spActiveContentJavaScript mais lançamento, navegação remota, URI, submissão, importação, multimédia, rendition, XFA e entradas de conteúdo ativo relacionadas
spRichMediaOnlyAnotações de multimédia avançada e as respetivas streams de payload destacadas
spRedactionCleanupAnotações Redact e de anexo de ficheiro, informação do documento, metadados, ficheiros associados e incorporados, e todos os objetos tornados inalcançáveis por essas remoções
spUntrustedDocumentTodo o conteúdo ativo mais ficheiros incorporados, ficheiros associados, anotações de anexo de ficheiro, estruturas de payload de multimédia avançada e tipos de ação desconhecidos encontrados em ranhuras portadoras de ação

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 utiliza spUntrustedDocument

Relatório de resultado

THPDFSanitiseReport conta as ações removidas, entradas JavaScript, ficheiros incorporados, anotações arriscadas, entradas XFA, fluxos de payload, referências destacadas, objetos inalcançáveis, entradas de metadados, anotações Redact, bytes de revisões anteriores descartados e objetos visitados

Changed indica se o gráfico de objetos foi alterado, enquanto LimitExceeded e InvalidObjectGraph explicam um pré-voo 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 utilização

APIs relacionadas