Hypotetický report.xlsx má 8 KB a otvára sa ako prihlasovacia stránka. Program úspešne uložil súbor, ale zamýšľanú tabuľku nikdy nezískal. Názov súboru sa vyberá lokálne; nie je dôkazom toho, čo dorazilo.

Urobte z prevzatia samostatný krok pred zverejnením dočasného stiahnutia:

  1. Vyžadujte úspešný prenos a očakávaný stav odpovede. Zachovajte chybu, namiesto toho, aby ste bajty zapísané pred ňou považovali za úplné.
  2. Porovnajte obsah s očakávaným typom súboru. Prihlasovacia alebo filtračná stránka môže vrátiť 200. Content-Type môže byť nesprávny a HTML predpona v tabuľke je varovanie, ktoré treba preskúmať. Súbor začínajúci riadkom stavu HTTP ukazuje skôr na surové rámcovanie odpovede.
  3. Overte všetky uložené bajty voči dôveryhodnému kontrolnému súčtu alebo podpisu, ak sú k dispozícii. Aplikácia by mala konečný súbor zverejniť alebo použiť až po absolvovaní požadovaných kontrol.

Výpočet hashu bez očakávanej hodnoty identifikuje len prijaté bajty. Nepodpísaný kontrolný súčet získaný tou istou nedôveryhodnou cestou môže zdieľať slabinu súboru; použite nezávislé dôveryhodné očakávanie.

Dávajte pozor aj na porovnávanie veľkostí. HTTP klient môže pri čítaní dekódovať kódovanie obsahu, takže výsledná dĺžka súboru sa môže legitímne líšiť od hlavičky opisujúcej zakódovanú správu. Porovnávajte očakávanie vydavateľa s reprezentáciou, ktorá bola skutočne uložená.

Ak pokus zlyhá, ponechajte dočasný výstup len pre zámerné pokračovanie, alebo ho zahoďte. Ponechanie neúplných bajtov na konečnej ceste núti ďalší program hádať, či sú použiteľné.

Súvisiace články