Ograničeni budžeti PDF parsera

Budžeti parsera u opsegu dokumenta zaustavljaju neprijateljski ili oštećen ulaz pre nego što konstrukcija tokena, agregatni rad tokena, rast nizova ili rečnika ili ponovljeni neispravni tokeni potroše prekomerne resurse

Podrazumevane vrednosti kompatibilnosti

Postavite bilo koje ograničenje na nulu da biste isključili to pojedinačno ograničenje

Negativne vrednosti podižu ERangeError

Stroga politika

ApplyStrictParserBudgetPolicy bira ograničenje tokena od 1 MiB, 100 000 ukupnih tokena, 10 000 unosa kontejnera i 8 neispravnih tokena

PDF.ApplyStrictParserBudgetPolicy;
try
  PDF.LoadFromFile(UntrustedFileName);
except
  on E: EHPDFParserBudgetExceeded do
    LogParserRejection(E.Limit, E.Observed, E.Maximum);
end;

ResetParserBudgetPolicy vraća podrazumevane vrednosti kompatibilnosti

Greška i telemetrija

Prekoračeno ograničenje podiže EHPDFParserBudgetExceeded sa Limit, Observed i Maximum vrednostima

THPDFParserBudgetLimit identifikuje pblTokenBytes, pblTotalTokens, pblContainerItems ili pblBadTokens

GetLastParserBudgetStatistics vraća THPDFParserBudgetStatistics snimak sa konfigurisanim ograničenjima, brojevima tokena i neispravnih tokena, vršnim veličinama tokena i kontejnera, informacijama o prekoračenju i važećom sesijom

Izuzeci budžeta ostaju terminalni kroz moderno parsiranje, tradicionalno parsiranje, oporavak unakrsnih referenci i izolaciju grešaka po objektu

Kapija performansi

Win32 regresiona kapija odbija token od 2 MiB za 215 ms pri vršnom procesu od 34 476 032 bajta i odbija kontejner od milion tokena za 199 ms pri vršnom procesu od 36 839 424 bajta

Pogledajte i: ApplyStrictParserBudgetPolicy, ResetParserBudgetPolicy, GetLastParserBudgetStatistics, Skalabilno učitavanje