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

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í