En lagret fil er ennå ikke en bekreftet nedlasting
Kontroller at en nedlasting via proxien inneholder den forventede filen, ikke en påloggingsside eller en ufullstendig respons, før du publiserer eller bruker den.
En hypotetisk report.xlsx er 8 KB og åpnes som en påloggingsside. Programmet lagret en fil, men fikk aldri det tiltenkte regnearket. Et filnavn velges lokalt; det er ikke bevis på hva som kom.
Gjør aksept til et eget trinn før den midlertidige nedlastingen publiseres:
- Krev en vellykket overføring og forventet svarbstatus. Ta vare på en feil i stedet for å behandle bytene som ble skrevet før den, som komplette.
- Sammenlign innholdet med den forventede filtypen. En påloggings- eller filterside kan returnere 200. Content-Type kan være feil, og et HTML-prefiks i et regneark er en advarsel som må undersøkes. En fil som begynner med en HTTP-statuslinje, peker i stedet på rå svarbearbeiding.
- Valider alle lagrede byter mot en betrodd kontrollsum eller signatur når den er tilgjengelig. Først etter at de nødvendige kontrollene er bestått, bør applikasjonen publisere eller bruke den endelige filen.
Å beregne en hash uten en forventet verdi identifiserer bare bytene du mottok. En usignert kontrollsum hentet via samme ikke-betroddbare vei kan dele filens svakhet; bruk en uavhengig betrodd forventning.
Vær også forsiktig med størrelsessammenligninger. En HTTP-klient kan dekode innholdskodingen mens den leser, så den resulterende fillengden kan med rette avvike fra en header som beskriver den kodede meldingen. Sammenlign utgiverens forventning med representasjonen som faktisk ble lagret.
Hvis et forsøk mislykkes, behold den midlertidige utdataen bare for en bevisst gjenopptakelse, eller forkast den. Ufullstendige byter på den endelige stien tvinger neste program til å gjette om de er brukbare.