Een opgeslagen bestand is nog geen geverifieerde download
Controleer vóór publicatie of gebruik of een download via de proxy het verwachte artefact bevat, en niet een inlogpagina of een onvolledig antwoord.
Een hypothetisch report.xlsx is 8 KB en opent als een inlogpagina. Het programma sloeg een bestand met succes op, maar kreeg nooit de bedoelde spreadsheet. Een bestandsnaam wordt lokaal gekozen; het is geen bewijs van wat er aankwam.
Maak van acceptatie een aparte stap voordat de tijdelijke download wordt gepubliceerd:
- Eis een geslaagde overdracht en de verwachte responsstatus. Bewaar een fout in plaats van de bytes die daarvoor zijn geschreven als volledig te behandelen.
- Vergelijk de inhoud met het verwachte artefacttype. Een inlog- of filterpagina kan 200 retourneren. Het Content-Type kan onjuist zijn, en een HTML-voorvoegsel in een spreadsheet is een waarschuwing die onderzoek vereist. Een bestand dat begint met een HTTP-statusregel wijst juist op ruwe responsomkadering.
- Valideer alle opgeslagen bytes tegen een vertrouwde controlesom of handtekening wanneer beschikbaar. Pas nadat de vereiste controles slagen, zou de applicatie het definitieve bestand moeten publiceren of gebruiken.
Een hash berekenen zonder verwachte waarde identificeert alleen de bytes die u hebt ontvangen. Een niet-ondertekende controlesom die via hetzelfde onbetrouwbare pad wordt opgehaald, kan de zwakte van het artefact delen; gebruik een onafhankelijke vertrouwde verwachting.
Wees ook voorzichtig met groottevergelijkingen. Een HTTP-client kan de inhoudscodering tijdens het lezen decoderen, waardoor de resulterende bestandslengte legitiem kan afwijken van een header die het gecodeerde bericht beschrijft. Vergelijk de verwachting van de uitgever met de weergave die daadwerkelijk is opgeslagen.
Als een poging mislukt, bewaar de tijdelijke uitvoer dan alleen voor een bewuste hervatting of gooi deze weg. Onvolledige bytes op het definitieve pad laten staan, dwingt het volgende programma te raden of ze bruikbaar zijn.