Sınırlı PDF Parser Bütçeleri

Belge kapsamlı parser bütçeleri; token inşası, toplu token işi, array veya dictionary büyümesi ya da tekrarlanan bozuk token'lar aşırı resource tüketmeden önce düşmanca veya hasarlı girdiyi durdurur

Uyumluluk varsayılanları

Tek bir limiti devre dışı bırakmak için ilgili sınırı sıfıra ayarlayın

Negatif değerler ERangeError fırlatır

Katı politika

ApplyStrictParserBudgetPolicy, 1 MiB token limiti, 100,000 toplam token, 10,000 container girdisi ve 8 bozuk token seçer

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

ResetParserBudgetPolicy, uyumluluk varsayılanlarını geri yükler

Hata ve telemetri

Aşılan bir limit, Limit, Observed ve Maximum değerleriyle EHPDFParserBudgetExceeded fırlatır

THPDFParserBudgetLimit, pblTokenBytes, pblTotalTokens, pblContainerItems veya pblBadTokens değerlerini tanımlar

GetLastParserBudgetStatistics, yapılandırılmış limitler, token ve bozuk token sayıları, tepe token ve container boyutları, aşım bilgisi ve session geçerliliğiyle bir THPDFParserBudgetStatistics snapshot'ı döndürür

Bütçe exception'ları; modern parsing, geleneksel parsing, cross-reference recovery ve object başına hata izolasyonu boyunca terminal kalır

Performans kapısı

Win32 regression gate'i, 34,476,032 baytlık process tepe noktasında 2 MiB'lik bir token'ı 215 ms'de reddeder; 36,839,424 baytlık process tepe noktasında bir milyon token'lı bir container'ı 199 ms'de reddeder

Ayrıca bkz.: ApplyStrictParserBudgetPolicy, ResetParserBudgetPolicy, GetLastParserBudgetStatistics, Ölçeklenebilir Yükleme