Обмежені бюджети парсера PDF
Бюджети парсера в межах документа зупиняють ворожий чи пошкоджений вхід до того, як побудова токенів, сукупна робота з токенами, ріст масивів чи словників або повторювані пошкоджені токени вичерпають надмірні ресурси
Типові значення сумісності
ParserMaxTokenBytesза замовчуванням становить 67 108 864 байтиParserMaxTotalTokensза замовчуванням становить 10 000 000 токенів на завантаженняParserMaxContainerItemsза замовчуванням становить 1 000 000 записів на масив або словникParserMaxBadTokensза замовчуванням становить 64 пошкоджені токени на завантаження
Встановіть будь-яку межу в нуль, щоб вимкнути цю окрему межу
Від'ємні значення кидають ERangeError
Строга політика
ApplyStrictParserBudgetPolicy обирає межу токенів 1 МБ, 100 000 сумарних токенів, 10 000 записів контейнерів та 8 пошкоджених токенів
PDF.ApplyStrictParserBudgetPolicy;
try
PDF.LoadFromFile(UntrustedFileName);
except
on E: EHPDFParserBudgetExceeded do
LogParserRejection(E.Limit, E.Observed, E.Maximum);
end;
ResetParserBudgetPolicy відновлює типові значення сумісності
Помилка та телеметрія
Порушена межа кидає EHPDFParserBudgetExceeded із значеннями Limit, Observed та Maximum
THPDFParserBudgetLimit ідентифікує pblTokenBytes, pblTotalTokens, pblContainerItems або pblBadTokens
GetLastParserBudgetStatistics повертає знімок THPDFParserBudgetStatistics із налаштованими межами, лічильниками токенів і пошкоджених токенів, піковими розмірами токенів і контейнерів, інформацією про порушення та валідністю сеансу
Винятки бюджету залишаються термінальними в сучасному розборі, традиційному розборі, відновленні перехресних посилань та ізоляції збоїв по об'єктах
Затвор продуктивності
Затвор регресу Win32 відхиляє токен 2 МБ за 215 мс при піковій пам'яті 34 476 032 байти та відхиляє контейнер з одним мільйоном токенів за 199 мс при піковій пам'яті 36 839 424 байти
Дивіться також: ApplyStrictParserBudgetPolicy, ResetParserBudgetPolicy, GetLastParserBudgetStatistics, Масштабоване завантаження