境界付き PDF パーサー予算

ドキュメントスコープのパーサー予算は、ホスト的または破損した入力が、トークン構築、集約トークン処理、配列またはディクショナリの拡張、繰り返される不正トークンの前に過剰なリソースを消費するのを止めます

互換性デフォルト

任意の制限をゼロに設定すると、その個別の制限が無効になります

負の値は ERangeError を発生させます

厳格ポリシー

ApplyStrictParserBudgetPolicy は、1 MiB のトークン制限、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 は互換性デフォルトを復元します

失敗とテレメトリ

超過した制限は、Limit、Observed、Maximum 値を持つ EHPDFParserBudgetExceeded を発生させます

THPDFParserBudgetLimit は、pblTokenBytes、pblTotalTokens、pblContainerItems、または pblBadTokens を識別します

GetLastParserBudgetStatistics は、設定された制限、トークンと不正トークンのカウント、ピークトークンとコンテナサイズ、違反情報、セッションの有効性を持つ THPDFParserBudgetStatistics スナップショットを返します

予算例外は、最新の解析、従来の解析、クロスリファレンス回復、オブジェクト単位の失敗分離全体で終端的なままです

パフォーマンスゲート

Win32 回帰ゲートは、34,476,032 バイトのプロセスピークで 215 ms で 2 MiB トークンを拒否し、36,839,424 バイトのプロセスピークで 199 ms で 100 万トークンのコンテナを拒否します

関連項目: ApplyStrictParserBudgetPolicy、ResetParserBudgetPolicy、GetLastParserBudgetStatistics、スケーラブルローディング