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
ParserMaxTokenBytestiene un predeterminado de 67,108,864 bytesParserMaxTotalTokenstiene un predeterminado de 10,000,000 tokens por cargaParserMaxContainerItemstiene un predeterminado de 1,000,000 de entradas por arreglo o diccionarioParserMaxBadTokenstiene un predeterminado de 64 tokens malformados por carga
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