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

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