Presupuestos acotados del analizador de PDF
Los presupuestos de analizador con ámbito de documento detienen la entrada hostil o dañada antes de que la construcción de tokens, el trabajo agregado de tokens, el crecimiento de matrices o diccionarios, o los tokens malformados repetidos consuman recursos excesivos
Valores predeterminados de compatibilidad
ParserMaxTokenBytesse establece de forma predeterminada en 67.108.864 bytesParserMaxTotalTokensse establece de forma predeterminada en 10.000.000 tokens por cargaParserMaxContainerItemsse establece de forma predeterminada en 1.000.000 entradas por matriz o diccionarioParserMaxBadTokensse establece de forma predeterminada en 64 tokens malformados por carga
Establezca cualquier límite en cero para deshabilitar ese límite individual
Los valores negativos lanzan ERangeError
Política estricta
ApplyStrictParserBudgetPolicy selecciona un límite de token de 1 MiB, 100.000 tokens en total, 10.000 entradas de contenedor y 8 tokens malformados
PDF.ApplyStrictParserBudgetPolicy;
try
PDF.LoadFromFile(UntrustedFileName);
except
on E: EHPDFParserBudgetExceeded do
LogParserRejection(E.Limit, E.Observed, E.Maximum);
end;
ResetParserBudgetPolicy restaura los valores predeterminados de compatibilidad
Error y telemetría
Un límite superado lanza EHPDFParserBudgetExceeded con los valores Limit, Observed y Maximum
THPDFParserBudgetLimit identifica pblTokenBytes, pblTotalTokens, pblContainerItems o pblBadTokens
GetLastParserBudgetStatistics devuelve una instantánea THPDFParserBudgetStatistics con los límites configurados, los recuentos de tokens y tokens malformados, los tamaños máximos de token y contenedor, la información de incumplimiento y la validez de la sesión
Las excepciones de presupuesto siguen siendo terminales en el análisis moderno, el análisis tradicional, la recuperación de referencias cruzadas y el aislamiento de errores por objeto
Puerta de rendimiento
La puerta de regresión Win32 rechaza un token de 2 MiB en 215 ms con un pico de proceso de 34.476.032 bytes y rechaza un contenedor de un millón de tokens en 199 ms con un pico de proceso de 36.839.424 bytes
Véase también: ApplyStrictParserBudgetPolicy, ResetParserBudgetPolicy, GetLastParserBudgetStatistics, Carga escalable