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

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