바운딩된 PDF 파서 예산

문서 범위 파서 예산은 토큰 구성, 집계 토큰 작업, 배열 또는 사전 증가 또는 반복되는 잘못된 토큰이 과도한 리소스를 소비하기 전에 적대적이거나 손상된 입력을 중지합니다

호환성 기본값

개별 제한을 비활성화하려면 해당 제한을 0으로 설정합니다

음수 값은 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바이트 프로세스 최대값에서 215ms 안에 2 MiB 토큰을 거부하고, 36,839,424바이트 프로세스 최대값에서 199ms 안에 백만 토큰 컨테이너를 거부합니다

추가 정보: ApplyStrictParserBudgetPolicy, ResetParserBudgetPolicy, GetLastParserBudgetStatistics, 확장 가능한 로딩