Egy hipotetikus report.xlsx 8 KB, és bejelentkező oldalként nyílik meg. A program sikeresen mentett egy fájlt, de soha nem kapta meg a szánt táblázatot. A fájlnevet helyben választják ki; ez nem bizonyíték arra, mi érkezett meg.

Tegye az átvételt külön lépéssé az ideiglenes letöltés közzététele előtt:

  1. Írjon elő sikeres átvitelt és a várt válaszstátuszt. Őrizze meg a hibát, ahelyett hogy az előtte írt bájtokat teljesnek tekintené.
  2. Hasonlítsa össze a tartalmat a várt fájltípussal. Egy bejelentkező vagy szűrőoldal 200-at adhat vissza. A Content-Type hibás lehet, és a táblázatban lévő HTML-előtag olyan figyelmeztetés, amelyet ki kell vizsgálni. A HTTP-státuszsorral kezdődő fájl inkább a nyers válaszkeretezésre utal.
  3. Ellenőrizze a teljes mentett bájtsorozatot megbízható ellenőrzőösszeggel vagy aláírással, ha elérhető. Az alkalmazás csak a szükséges ellenőrzések után tegye közzé vagy használja a végleges fájlt.

A hash kiszámítása várt érték nélkül csak a kapott bájtokat azonosítja. Az ugyanazon nem megbízható úton beszerzett aláírás nélküli ellenőrzőösszeg oszthatja a fájl gyengeségét; használjon független, megbízható elvárást.

A méret-összehasonlításoknál is legyen óvatos. Az HTTP-kliens olvasás közben dekódolhatja a tartalomkódolást, így a kapott fájl hossza jogosan eltérhet a kódolt üzenetet leíró fejléctől. Hasonlítsa össze a kiadó elvárását a ténylegesen mentett reprezentációval.

Ha egy kísérlet meghiúsul, csak szándékos folytatáshoz tartsa meg az ideiglenes kimenetet, vagy dobja el. A hiányos bájtok végleges útvonalon hagyása arra kényszeríti a következő programot, hogy találgassa, használhatók-e.

Kapcsolódó cikkek