Orçamentos de analisador PDF limitados

Orçamentos de analisador com escopo de documento impedem que entrada hostil ou danificada consuma recursos excessivos antes da construção de token, trabalho agregado de token, crescimento de array ou dicionário ou tokens malformados repetidos

Padrões de compatibilidade

Defina qualquer limite como zero para desabilitar aquele limite individual

Valores negativos geram ERangeError

Política estrita

ApplyStrictParserBudgetPolicy seleciona um limite de token de 1 MiB, 100.000 tokens totais, 10.000 entradas de contêiner e 8 tokens malformados

PDF.ApplyStrictParserBudgetPolicy;
try
  PDF.LoadFromFile(UntrustedFileName);
except
  on E: EHPDFParserBudgetExceeded do
    LogParserRejection(E.Limit, E.Observed, E.Maximum);
end;

ResetParserBudgetPolicy restaura os padrões de compatibilidade

Falha e telemetria

Um limite violado gera EHPDFParserBudgetExceeded com valores Limit, Observed e Maximum

THPDFParserBudgetLimit identifica pblTokenBytes, pblTotalTokens, pblContainerItems ou pblBadTokens

GetLastParserBudgetStatistics retorna um instantâneo THPDFParserBudgetStatistics com limites configurados, contagens de token e token malformado, tamanhos de pico de token e contêiner, informações de violação e validade de sessão

Exceções de orçamento permanecem terminais na análise moderna, análise tradicional, recuperação de referência cruzada e isolamento de falha por objeto

Portão de desempenho

O portão de regressão Win32 rejeita um token de 2 MiB em 215 ms com pico de processo de 34.476.032 bytes e rejeita um contêiner de um milhão de tokens em 199 ms com pico de processo de 36.839.424 bytes

Veja também: ApplyStrictParserBudgetPolicy, ResetParserBudgetPolicy, GetLastParserBudgetStatistics, Scalable Loading