Запазеният файл все още не е проверено изтегляне
Проверете дали изтеглянето през прокси съдържа очаквания файл, а не страница за удостоверяване или непълен отговор, преди да го публикувате или използвате.
Хипотетичен report.xlsx е 8 KB и се отваря като страница за вход. Програмата запази файл успешно, но така и не получи предвидената електронна таблица. Името на файла се избира локално; то не е доказателство за това какво е пристигнало.
Направете приемането отделна стъпка преди публикуването на временното изтегляне:
- Изисквайте успешен трансфер и очакван статус на отговора. Запазете грешката, вместо да смятате записаните преди нея байтове за пълни.
- Сравнете съдържанието с очаквания тип файл. Страница за вход или филтър може да върне 200. Content-Type може да е грешен, а HTML префикс в електронна таблица е предупреждение, което изисква разследване. Файл, започващ с ред за HTTP статус, сочи вместо това към сурово рамкиране на отговора.
- Проверете пълните запазени байтове срещу доверена контролна сума или подпис, когато има такива. Едва след като необходимите проверки минат, приложението би трябвало да публикува или използва крайния файл.
Изчисляването на хеш без очаквана стойност идентифицира само байтовете, които сте получили. Неподписана контролна сума, изтеглена по същия ненадежден път, може да споделя слабостта на файла; използвайте независимо доверено очакване.
Внимавайте и със сравненията на размера. HTTP клиент може да декодира кодирането на съдържанието, докато чете, така че дължината на получения файл може законно да се различава от заглавка, описваща кодираното съобщение. Сравнявайте очакването на издателя с представянето, което действително е запазено.
Ако опитът се провали, запазете временния изход само за съзнателно продължаване или го изхвърлете. Оставянето на непълни байтове на крайния път принуждава следващата програма да гадае дали са използваеми.