Begrenzte Budgets des PDF-Parsers

Dokumentbezogene Parserbudgets stoppen feindliche oder beschädigte Eingaben, bevor Tokenaufbau, aggregierte Tokenarbeit, Wachstum von Arrays oder Wörterbüchern oder wiederholte fehlerhafte Tokens übermäßige Ressourcen verbrauchen

Kompatibilitätsstandardwerte

Setzen Sie eine Grenze auf null, um diese einzelne Grenze zu deaktivieren

Negative Werte lösen ERangeError aus

Strenge Richtlinie

ApplyStrictParserBudgetPolicy wählt eine Tokenbegrenzung von 1 MiB, 100.000 Tokens insgesamt, 10.000 Containereinträge und 8 fehlerhafte Tokens

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

ResetParserBudgetPolicy stellt die Kompatibilitätsstandardwerte wieder her

Fehler und Telemetrie

Eine überschrittene Grenze löst EHPDFParserBudgetExceeded mit den Werten Limit, Observed und Maximum aus

THPDFParserBudgetLimit kennzeichnet pblTokenBytes, pblTotalTokens, pblContainerItems oder pblBadTokens

GetLastParserBudgetStatistics gibt einen Snapshot von THPDFParserBudgetStatistics mit konfigurierten Grenzen, Token- und fehlerhaften Tokenanzahlen, Spitzenwerten für Token und Container, Informationen zur Verletzung und Sitzungsvalidität zurück

Budgetausnahmen bleiben bei modernem und traditionellem Parsing, Wiederherstellung von Querverweisen und Fehlerisolierung je Objekt terminal

Leistungssperre

Die Win32-Regressionssperre weist ein 2-MiB-Token in 215 ms bei einem Prozessspitzenwert von 34.476.032 Byte zurück und einen Container mit einer Million Tokens in 199 ms bei einem Prozessspitzenwert von 36.839.424 Byte

Siehe auch: ApplyStrictParserBudgetPolicy, ResetParserBudgetPolicy, GetLastParserBudgetStatistics, Skalierbares Laden