Rozpočty parseru
Rozpočty parseru omezují hloubku, počet objektů, délky tokenů, velikosti streamů a dobu práce při načítání nedůvěryhodných PDF
Defaulty kompatibility
ParserMaxTokenBytesmá default 67 108 864 bajtůParserMaxTotalTokensmá default 10 000 000 tokenů na načteníParserMaxContainerItemsmá default 1 000 000 položek na pole nebo slovníkParserMaxBadTokensmá default 64 poškozených tokenů na načtení
Překročení limitu vrací určený stav a diagnostiku bez zveřejnění částečně načteného grafu
Záporné hodnoty vyvolají ERangeError
Přísná politika
ApplyStrictParserBudgetPolicy vybere limit tokenu 1 MiB, 100 000 tokenů celkem, 10 000 položek kontejnerů a 8 poškozených tokenů
PDF.ApplyStrictParserBudgetPolicy;
try
PDF.LoadFromFile(UntrustedFileName);
except
on E: EHPDFParserBudgetExceeded do
LogParserRejection(E.Limit, E.Observed, E.Maximum);
end;
ResetParserBudgetPolicy obnoví defaulty kompatibility
Selhání a telemetrie
Překročený limit vyvolá EHPDFParserBudgetExceeded s hodnotami Limit, Observed a Maximum
THPDFParserBudgetLimit identifikuje pblTokenBytes, pblTotalTokens, pblContainerItems nebo pblBadTokens
GetLastParserBudgetStatistics vrací snapshot THPDFParserBudgetStatistics s nastavenými limity, počty tokenů a poškozených tokenů, špičkovými velikostmi tokenů a kontejnerů, informacemi o porušení a platností session
Výjimky rozpočtů zůstávají terminální napříč moderním parsáním, tradičním parsáním, obnovou křížových referencí a izolací selhání na objekt
Výkonnostní brána
Regresní brána Win32 odmítne token 2 MiB za 215 ms při špičce procesu 34 476 032 bajtů a odmítne kontejner s milionem tokenů za 199 ms při špičce procesu 36 839 424 bajtů
Viz také: ApplyStrictParserBudgetPolicy, ResetParserBudgetPolicy, GetLastParserBudgetStatistics, Škálovatelné načítání