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
ParserMaxTokenBytesist standardmäßig 67.108.864 ByteParserMaxTotalTokensist standardmäßig 10.000.000 Tokens pro LadevorgangParserMaxContainerItemsist standardmäßig 1.000.000 Einträge pro Array oder WörterbuchParserMaxBadTokensist standardmäßig 64 fehlerhafte Tokens pro Ladevorgang
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