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
ParserMaxTokenBytespodrazumevano iznosi 67 108 864 bajtaParserMaxTotalTokenspodrazumevano iznosi 10 000 000 tokena po učitavanjuParserMaxContainerItemspodrazumevano iznosi 1 000 000 unosa po nizu ili rečnikuParserMaxBadTokenspodrazumevano iznosi 64 neispravna tokena po učitavanju
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