Budgets d'analyseur PDF bornés

Les budgets d'analyseur au niveau du document arrêtent une entrée hostile ou endommagée avant que la construction de jetons, le travail de jetons agrégé, la croissance de tableaux ou de dictionnaires ou les jetons malformés répétés ne consomment des ressources excessives

Valeurs par défaut de compatibilité

Définissez toute limite à zéro pour désactiver cette limite individuelle

Les valeurs négatives déclenchent ERangeError

Politique stricte

ApplyStrictParserBudgetPolicy sélectionne une limite de jetons de 1 Mio, 100 000 jetons au total, 10 000 entrées de conteneur et 8 jetons malformés

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

ResetParserBudgetPolicy restaure les valeurs par défaut de compatibilité

Échec et télémétrie

Une limite dépassée déclenche EHPDFParserBudgetExceeded avec les valeurs Limit, Observed et Maximum

THPDFParserBudgetLimit identifie pblTokenBytes, pblTotalTokens, pblContainerItems ou pblBadTokens

GetLastParserBudgetStatistics retourne un instantané THPDFParserBudgetStatistics avec les limites configurées, les compteurs de jetons et de jetons malformés, les tailles de pointe de jets et de conteneurs, les informations de dépassement et la validité de session

Les exceptions de budget restent terminales sur l'analyse moderne, l'analyse traditionnelle, la récupération des références croisées et l'isolation de défaillance par objet

Portail de performance

Le portail de régression Win32 rejette un jeton de 2 Mio en 215 ms à un pic de processus de 34 476 032 octets et rejette un conteneur d'un million de jetons en 199 ms à un pic de processus de 36 839 424 octets

Voir aussi : ApplyStrictParserBudgetPolicy, ResetParserBudgetPolicy, GetLastParserBudgetStatistics, Chargement extensible