En rapporteringspostkasse er en inputgrænse, ikke en pålidelig datakilde. En vedhæftning kan være misformet, overdimensioneret eller bevidst dyr at behandle. Byg indtagelsesstien, så transportaccept ikke automatisk betyder parseraccept, og parseraccept betyder ikke automatisk, at rapportens påstande er troværdige.
RFC 9990 beskriver aggregeret XML-levering og advarer om ressourceudtømning og falsk information. Nedenstående pipeline er en implementeringsanbefaling, ikke en påstand om, at et bestemt produkt allerede leverer disse kontroller.
Isoler indtag fra analyse
Referencer: RFC 9990 §8.1, RFC 9990 §8.2.
Tildel et ankomst-id og bevar en afgrænset, adgangsstyret reference til den originale vedhæftede fil. Registrer dens størrelse, fingeraftryk, ankomsttid og transportmetadata. Anvend kø og ressourcekontrol pr. oprindelse, så én strøm ikke kan monopolisere arbejdere. Behandl en afsenderadresse eller et velkendt filnavn som utilstrækkeligt bevis på ægthed.
Hold arbejderen minimalt privilegeret og adskilt fra de databaselegitimationsoplysninger, der bruges til at udgive endelige metrics. Forhindrer vedhæftet indhold i at bestemme eksekverbare kommandoer eller destinationsstier. Mislykkede input hører hjemme i en kontrolleret diagnostisk sti, ikke i offentlige fejlsider eller ubegrænsede logfiler.
Bundet dekompression, mens den kører
Referencer: RFC 9990 §3.5.2, RFC 9990 §8.1.
RFC 9990 specificerer XML og anbefaler GZIP-komprimering. Find det understøttede format og afvis ikke-understøttede containere i henhold til en dokumenteret kompatibilitetspolitik. Hvis ældre arkivformater bevidst understøttes, skal du gennemgå deres yderligere udtræknings- og stirisici i stedet for at behandle dem som ækvivalente med en enkelt XML-strøm.
Indstil grænser for komprimerede bytes, udvidede bytes, forløbet behandlingstid, hukommelse, registreringsantal og samtidighed. Håndhæv udvidede størrelsesgrænser under læsning, ikke efter at have allokeret hele outputtet. Størrelsesdeklarationer inde i en beholder er ikke en erstatning for måling af faktisk output. Stop behandlingen, når en konfigureret grænse er nået.
Parse uden unødvendige muligheder
Referencer: RFC 9990 §3.1.1, RFC 9990 §8.1.
Reference: OWASP XML-forebyggelse af ekstern enhed, generel vejledning.
Brug en vedligeholdt parser med dens faktiske runtime-konfiguration gennemgået. Deaktiver unødvendige dokumenttyper, ekstern enhedsopløsning, XInclude og ekstern ressourcehentning. Behandl ikke-understøttede hærdningsindstillinger som konfigurationsfejl, ikke advarsler, der skal ignoreres. Brug betroede lokale skemaer, hvor validering er påkrævet i stedet for at følge skemaplaceringer leveret af en vedhæftet fil. Anvend grænser for indlejring og tekststørrelse samt samlede bytes.
Validerer den forventede rapportstruktur og feltsemantik adskilt fra XML-formenhed. Et dokument kan være velformet, men ubrugeligt som en DMARC rapport. Bevar årsagen til afvisningen uden at oversætte en parserfejl til en dom om mailgodkendelse.
Brug en lille afgrænset armatur
Illustrativ iscenesættelseskonfiguration: tillad 64 KiB komprimeret input og 256 KiB udvidet output for en bevidst lille testmedarbejder. En harmløs GZIP-armatur udvides til 300 KiB gentagen testtekst. Det forventede resultat er et stop i udvidet størrelse før fuldstændig materialisering, ingen indberetningsrækker og en diagnostik indeholdende grænsen og inputreferencen.
Disse tal er demonstrationsgrænser, ikke rådgivning om produktionsstørrelse. Test en gyldig lille rapport umiddelbart efter for at verificere, at arbejderen forbliver brugbar. Registrer faktiske målinger, før du hævder, at kontrollen virker. Denne artikel beskriver påkrævet iscenesættelsesadfærd, ikke en udført lejertest. Gennemgangspakken optager også en ny afgrænset Python GZIP-demonstration: den registrerer udvidelse ud over 256 KiB-grænsen med højst én ekstra detektionsbyte og håndterer derefter en lille gyldig XML-tekststrøm. Det viser kun denne lokale dekompressionsbeskyttelse, ikke parserhærdning, hukommelsesisolering eller databaseadfærd.
Send kun validerede data
Referencer: RFC 9990 §3.5.4, RFC 9990 §9.2.
Trin normaliserede registreringer og fuldfør importen atomisk efter validering og duplikathåndtering. En afbrudt fil bør ikke efterlade en delvis optælling i produktionsanalyse. Gør replay idempotent og behold beslutningen, der forbinder gentagne ankomster til den optalte rapport.
Overvåg afviste bytes, behandlingstid, køalder og gendannelsesresultater. Legitime rapporter kan overskride lokale grænser, så giv en kontrolleret gennemgang i stedet for automatisk at hæve hver grænse. Luk det operationelle design med navngivne ejere for indtag, parservedligeholdelse, opbevaringslagring og hændelsesrespons.