En sparad fil är ännu inte en verifierad nedladdning
Kontrollera att en nedladdning via proxyn innehåller den förväntade filen, inte en inloggningssida eller ett ofullständigt svar, innan du publicerar eller använder den.
En hypotetisk report.xlsx är 8 KB och öppnas som en inloggningssida. Programmet sparade en fil, men fick aldrig det avsedda kalkylarket. Ett filnamn väljs lokalt; det är inte bevis på vad som kom.
Gör godkännandet till ett eget steg innan den tillfälliga nedladdningen publiceras:
- Kräv en lyckad överföring och den förväntade svarsstatusen. Bevara ett fel i stället för att behandla byten som skrevs före det som fullständiga.
- Jämför innehållet med den förväntade filtypen. En inloggnings- eller filtersida kan returnera 200. Content-Type kan vara fel, och ett HTML-prefix i ett kalkylark är en varning som kräver undersökning. En fil som börjar med en HTTP-statusrad pekar i stället på rå svarsinramning.
- Validera alla sparade byten mot en betrodd kontrollsumma eller signatur när sådan finns. Först efter att de nödvändiga kontrollerna passerat bör programmet publicera eller använda den slutliga filen.
Att beräkna en hash utan ett förväntat värde identifierar bara byten du tog emot. En osignerad kontrollsumma hämtad via samma obetroddbara väg kan dela filens svaghet; använd en oberoende betrodd förväntan.
Var också försiktig med storleksjämförelser. En HTTP-klient kan avkoda innehållskodningen medan den läser, så den resulterande fillängden kan legitimt avvika från en rubrik som beskriver det kodade meddelandet. Jämför utgivarens förväntan med den representation som faktiskt sparades.
Om ett försök misslyckas ska du bara behålla den tillfälliga utdata för en avsiktlig återupptagning, annars kasta den. Ofullständiga byten på den slutliga sökvägen tvingar nästa program att gissa om de är användbara.