Um ficheiro guardado ainda não é um download verificado
Verifique se um download através do proxy contém o artefacto esperado, e não uma página de autenticação ou uma resposta incompleta, antes de o publicar ou utilizar.
Um report.xlsx hipotético tem 8 KB e abre como uma página de início de sessão. O programa guardou um ficheiro com sucesso, mas nunca obteve a folha de cálculo pretendida. O nome do ficheiro é escolhido localmente; não é prova do que chegou.
Torne a aceitação um passo separado antes de publicar o download temporário:
- Exija uma transferência bem-sucedida e o estado de resposta esperado. Preserve o erro em vez de tratar os bytes escritos antes dele como completos.
- Compare o conteúdo com o tipo de artefacto esperado. Uma página de início de sessão ou de filtragem pode devolver 200. O Content-Type pode estar errado, e um prefixo HTML numa folha de cálculo é um aviso que exige investigação. Um ficheiro que começa com uma linha de estado HTTP aponta, em vez disso, para um enquadramento de resposta em bruto.
- Valide todos os bytes guardados com uma soma de verificação ou assinatura de confiança, quando disponível. Só depois de passarem as verificações exigidas deve a aplicação publicar ou utilizar o ficheiro final.
Calcular um hash sem um valor esperado identifica apenas os bytes recebidos. Uma soma de verificação não assinada obtida pelo mesmo caminho não fidedigno pode partilhar a fraqueza do artefacto; use uma expectativa de confiança independente.
Tenha também cuidado com as comparações de tamanho. Um cliente HTTP pode descodificar a codificação do conteúdo durante a leitura, pelo que o comprimento resultante do ficheiro pode divergir legitimamente de um cabeçalho que descreva a mensagem codificada. Compare a expectativa do editor com a representação efetivamente guardada.
Se uma tentativa falhar, conserve a saída temporária apenas para um recomeço deliberado ou descarte-a. Deixar bytes incompletos no caminho final obriga o programa seguinte a adivinhar se são utilizáveis.