저장된 파일은 아직 검증된 다운로드가 아닙니다
게시하거나 사용하기 전에 프록시를 통한 다운로드가 기대한 파일을 담고 있는지, 인증 페이지나 불완전한 응답이 아닌지 확인하세요.
가상의 report.xlsx 는 8 KB이며 로그인 페이지로 열립니다. 프로그램은 파일을 성공적으로 저장했지만 의도한 스프레드시트를 얻지는 못했습니다. 파일 이름은 로컬에서 선택되는 것이며, 무엇이 도착했는지에 대한 증거가 아닙니다.
임시 다운로드를 게시하기 전에 수락을 별도의 단계로 만드세요:
- 성공적인 전송과 기대한 응답 상태를 요구하십시오. 그 이전에 기록된 바이트를 완전한 것으로 취급하지 말고 오류를 보존하십시오.
- 내용을 기대한 파일 형식과 비교하십시오. 로그인 페이지나 필터 페이지가 200을 반환할 수 있습니다. Content-Type이 틀릴 수 있고, 스프레드시트에 HTML 접두사가 있으면 조사가 필요한 경고입니다. HTTP 상태 줄로 시작하는 파일은 대신 원시 응답 프레이밍을 가리킵니다.
- 가능한 경우 신뢰할 수 있는 체크섬이나 서명으로 저장된 전체 바이트를 검증하십시오. 필요한 검사를 통과한 뒤에만 애플리케이션이 최종 파일을 게시하거나 사용해야 합니다.
기대값 없이 해시를 계산하면 받은 바이트를 식별할 뿐입니다. 같은 신뢰할 수 없는 경로로 가져온 서명 없는 체크섬은 그 파일의 약점을 공유할 수 있습니다. 독립적인 신뢰 기대값을 사용하십시오.
크기 비교도 주의하십시오. HTTP 클라이언트는 읽는 동안 내용 인코딩을 디코딩할 수 있으므로, 결과 파일 길이가 인코딩된 메시지를 설명하는 헤더와 정당하게 다를 수 있습니다. 게시자의 기대값을 실제로 저장된 표현과 비교하십시오.
시도가 실패하면 임시 출력은 의도적인 재개를 위해서만 보관하거나 버리십시오. 최종 경로에 불완전한 바이트를 남기면 다음 프로그램이 그것이 사용 가능한지 추측해야 합니다.