目錄 / Table of Contents

Sikkerhetsgrenser for lasting og strømlesere

Informativ oversettelse; ved avvik gjelder den autoritative zh-TW-kilden.

Pakkelasting og OdsStreamReader/OdtStreamReader behandler ikke-klarert ZIP/XML-inndata. Leserne bygger ikke et fullstendig DOM, men bruker buffere for gjeldende rad, nodetekst, ZIP-dekomprimering og XML-leseren. Lavt minnebruk gjør ikke inndatastørrelsen irrelevant.

Grenser for kjernepakken

OdfDocument.Load, formatspesifikke Load-fasader og OdfPackage.Open deler ressursbudsjettene i OdfLoadOptions.

Grense Standard Beskyttelsesformål
ZIP-oppføringer 5,000 Hindrer uttømming av CPU og minne fra mange små oppføringer
Ukomprimert størrelse for én oppføring 500 MiB Begrenser utvidelsen av én ZIP-oppføring
Samlet ukomprimert størrelse 1 GiB Begrenser total utvidelse av pakken
Rå størrelse på ikke-søkbare inndata 1 GiB Begrenser bufring før ZIP-utvidelse
Tegn i ett XML-dokument 64 MiB Begrenser XML-behandling og DOM-bygging

De fire ZIP-grensene må være positive; null eller negative verdier gir umiddelbart ArgumentOutOfRangeException. Bare MaxXmlCharactersInDocument = 0 slår av XML-grensen. Alle XML-lesere må forby eksterne DTD-er og resolvere. Nye lastebaner må bruke OdfLoadOptions. Valideringsbaner for pakker og Flat XML (OdfPackageValidator, OdfFlatDocumentValidator og skanning av profilregler) bruker også MaxXmlCharactersInDocument: pakkevalidering bruker package.LoadOptions, mens Flat-validering bruker OdfValidationOptions.LoadOptions (standardverdien 64 MiB fra OdfLoadOptions når den utelates). Signaturer, tidsstempler, sertifikatopphevingsdata og eksterne nettverkssvar har egne mindre grenser; grensen for kjernepakken erstatter dem ikke. Bruk OdfPackageValidator, SanitizeMacros, signaturvalidering eller pwsh eng/Test-OdfPolicy.ps1 for innholdspolicy.

Grenser for strømlesere

Leser Grense Standard
ODS XML-tegn 64 MiB
ODS Rader per ark 1,048,576
ODS Kolonner per rad 16,384
ODS Én repeat-erklæring rader 1,048,576; kolonner 16,384
ODS Tekst fra én celle 16 MiB
ODT XML-tegn 64 MiB
ODT Returnerte tekstnoder 1,000,000
ODT Tekst fra én node 16 MiB

Lesing mislykkes når en grense overskrides; repeat avkortes ikke for å returnere tilsynelatende komplette data. Ikke prøv automatisk på nytt uten grenser. LeaveOpen er normalt false; med true lukkes XML- strømmen og ZIP-leseren, mens innringerens ytterste strøm forblir åpen.

Behold grensene for ukjente dokumenter og valider pakke og skjema. Høyere grenser øker minne- og CPU DoS- risiko. MaxXmlCharactersInDocument = 0 slår bare av XML-tegngrensen. Grenser, validering og sanitering reduserer risiko, men garanterer ikke absolutt sikkerhet.

ODS- og ODT-leserinnstillinger validerer reglene når egenskaper tilordnes: XML-grensen tillater null, mens grenser for rader, kolonner, repeat, noder og tekst må være større enn null.