Ograničeni proračuni PDF parsera
Proračuni parsera s opsegom dokumenta zaustavljaju neprijateljski ili oštećen ulaz prije nego konstrukcija tokena, agregiran rad tokena, rast niza ili rječnika ili ponovljeni neispravni tokeni potroše prekomjerne resurse
Zadane postavke kompatibilnosti
ParserMaxTokenByteszadano iznosi 67 108 864 bajtovaParserMaxTotalTokenszadano iznosi 10 000 000 tokena po učitavanjuParserMaxContainerItemszadano iznosi 1 000 000 unosa po nizu ili rječnikuParserMaxBadTokenszadano iznosi 64 neispravna tokena po učitavanju
Postavite bilo koju granicu na nulu za onemogućavanje toga pojedinačnog ograničenja
Negativne vrijednosti izazivaju ERangeError
Stroga politika
ApplyStrictParserBudgetPolicy bira ograničenje tokena od 1 MiB, 100 000 ukupnih tokena, 10 000 unosa spremnika 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 zadane postavke kompatibilnosti
Greška i telemetrija
Prekršena granica izaziva EHPDFParserBudgetExceeded s vrijednostima Limit, Observed i Maximum
THPDFParserBudgetLimit identificira pblTokenBytes, pblTotalTokens, pblContainerItems ili pblBadTokens
GetLastParserBudgetStatistics vraća trenutnu snimku THPDFParserBudgetStatistics s konfiguriranim granicama, brojanjima tokena i neispravnih tokena, vršnim veličinama tokena i spremnika, informacijama o prekršaju i valjanošću sesije
Iznimke proračuna ostaju konačne kroz moderno parsiranje, tradicionalno parsiranje, oporavak unakrsnih referenci i izolaciju grešaka po objektu
Vrata performansi
Win32 regresijska vrata odbacuju token od 2 MiB u 215 ms pri vršnom procesu od 34 476 032 bajta i odbacuju spremnik s milijun tokena u 199 ms pri vršnom procesu od 36 839 424 bajta
Također pogledajte: ApplyStrictParserBudgetPolicy, ResetParserBudgetPolicy, GetLastParserBudgetStatistics, Skalabilno učitavanje