Begränsade budgetar för PDF-parsern
Dokumentomfattande parser-budgetar stoppar fientlig eller skadad indata innan tokenkonstruktion, sammanställt tokenarbete, array- eller ordliststillväxt eller upprepade felformaterade tokens förbrukar överdrivna resurser
Standardvärden för kompatibilitet
ParserMaxTokenBytesantar som standard 67,108,864 byteParserMaxTotalTokensantar som standard 10,000,000 tokens per inläsningParserMaxContainerItemsantar som standard 1,000,000 poster per array eller ordlistaParserMaxBadTokensantar som standard 64 felformaterade tokens per inläsning
Ställ valfri gräns på noll för att inaktivera just den gränsen
Negativa värden avger ERangeError
Strikt policy
ApplyStrictParserBudgetPolicy väljer en tokengräns på 1 MiB, 100 000 totala tokens, 10 000 behållarposter och 8 felformaterade tokens
PDF.ApplyStrictParserBudgetPolicy;
try
PDF.LoadFromFile(UntrustedFileName);
except
on E: EHPDFParserBudgetExceeded do
LogParserRejection(E.Limit, E.Observed, E.Maximum);
end;
ResetParserBudgetPolicy återställer standardvärdena för kompatibilitet
Fel och telemetri
En överträdd gräns avger EHPDFParserBudgetExceeded med värdena Limit, Observed och Maximum
THPDFParserBudgetLimit identifierar pblTokenBytes, pblTotalTokens, pblContainerItems eller pblBadTokens
GetLastParserBudgetStatistics returnerar en THPDFParserBudgetStatistics-ögonblicksbild med konfigurerade gränser, antal tokens och felformaterade tokens, toppstorlekar för token och behållare, gränssprängningsinformation och sessionsvaliditet
Budgetundantag förblir terminala över modern parsning, traditionell parsning, korsreferensåterställning och isolering av per-objektfel
Prestandaspärr
Win32-regressionsspärren avvisar en token på 2 MiB på 215 ms vid en processhögsta på 34,476,032 byte och avvisar en behållare med en miljon tokens på 199 ms vid en processhögsta på 36,839,424 byte
Se även: ApplyStrictParserBudgetPolicy, ResetParserBudgetPolicy, GetLastParserBudgetStatistics, Scalable Loading