Presupuestos acotados del parser PDF

Los presupuestos del parser con alcance 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 arreglos o diccionarios, o los tokens malformados repetidos consuman recursos en exceso

Predeterminados de compatibilidad

Asigne cero a cualquier límite 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 totales, 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 predeterminados de compatibilidad

Fallos y telemetría

Un límite vulnerado lanza EHPDFParserBudgetExceeded con los valores Limit, Observed y Maximum

THPDFParserBudgetLimit identifica pblTokenBytes, pblTotalTokens, pblContainerItems o pblBadTokens

GetLastParserBudgetStatistics devuelve un snapshot THPDFParserBudgetStatistics con los límites configurados, los conteos de tokens y tokens malformados, los tamaños pico de tokens y contenedores, la información de vulneración y la validez de la sesión

Las excepciones de presupuesto permanecen terminales a través del parseo moderno, el parseo tradicional, la recuperación de cross-references y el aislamiento de fallos 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

Vea también: ApplyStrictParserBudgetPolicy, ResetParserBudgetPolicy, GetLastParserBudgetStatistics, Scalable Loading