Budget limitati del parser PDF

I budget del parser con ambito di documento fermano input ostile o danneggiato prima che la costruzione dei token, il lavoro aggregato sui token, la crescita di array o dizionari o token malformati ripetuti consumino risorse eccessive

Default di compatibilità

Impostare un limite qualsiasi a zero per disattivare quel singolo limite

I valori negativi sollevano ERangeError

Politica strict

ApplyStrictParserBudgetPolicy seleziona un limite di token da 1 MiB, 100.000 token totali, 10.000 voci di contenitore e 8 token malformati

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

ResetParserBudgetPolicy ripristina i default di compatibilità

Fallimenti e telemetria

Un limite superato solleva EHPDFParserBudgetExceeded con valori Limit, Observed e Maximum

THPDFParserBudgetLimit identifica pblTokenBytes, pblTotalTokens, pblContainerItems o pblBadTokens

GetLastParserBudgetStatistics restituisce uno snapshot THPDFParserBudgetStatistics con i limiti configurati, i conteggi di token e token malformati, le dimensioni di picco di token e contenitori, le informazioni sul superamento e la validità della sessione

Le eccezioni di budget restano terminali attraverso il parsing moderno, il parsing tradizionale, il recupero delle cross-reference e l'isolamento dei fallimenti per oggetto

Gate di prestazioni

Il gate di regressione Win32 rifiuta un token da 2 MiB in 215 ms con un picco di processo di 34.476.032 byte e rifiuta un contenitore da un milione di token in 199 ms con un picco di processo di 36.839.424 byte

Vedi anche: ApplyStrictParserBudgetPolicy, ResetParserBudgetPolicy, GetLastParserBudgetStatistics, Caricamento scalabile