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ı
ParserMaxTokenBytesvarsayılanı 67,108,864 bayttırParserMaxTotalTokensvarsayılanı yükleme başına 10,000,000 token'dırParserMaxContainerItemsvarsayılanı array veya dictionary başına 1,000,000 girdidirParserMaxBadTokensvarsayılanı yükleme başına 64 bozuk token'dır
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