Chuyển đến nội dung
Tất cả bài viết
Blog & hướng dẫn/Xử lý lỗi & Bảo mật
Xử lý lỗi & Bảo mật

Tải tệp qua Proxy: Kiểm tra nội dung, kích thước và checksum

Không coi tệp đã lưu là tải thành công; kiểm tra status, nội dung, checksum và điều kiện resume trước khi xử lý dữ liệu.

Tải tệp qua Proxy: Kiểm tra nội dung, kích thước và checksum
NỘI DUNG BÀI VIẾTHướng dẫn chi tiết từ ProxySmart

Một quy trình chỉ kiểm tra “có tệp trên ổ đĩa” có thể bỏ sót tải thất bại. Tệp có thể chưa hoàn chỉnh hoặc chứa trang lỗi thay cho nội dung mong đợi. Cần kiểm tra cả lớp HTTP và dữ liệu đã lưu.

Kiểm tra trước khi sử dụng

  1. Ghi mã phản hồi và Content-Type.
  2. Đối chiếu kích thước với nguồn công bố nếu có.
  3. Kiểm tra định dạng thực tế, không chỉ phần mở rộng tên tệp.
  4. So checksum với giá trị từ nguồn đáng tin cậy nếu được cung cấp.
  5. Chỉ chuyển tệp đã xác minh vào bước xử lý tiếp theo.

Không mở hoặc chạy tệp không rõ nguồn gốc chỉ để thử. Với dữ liệu công việc, dùng tệp mẫu không nhạy cảm khi điều tra đường truyền.

Content-Length không phải luôn đủ

Nội dung có thể được mã hóa hoặc truyền theo cơ chế không có chiều dài biết trước. Vì vậy, không mặc định thiếu Content-Length là tải lỗi. Ngược lại, số byte khớp cũng chưa bảo đảm bạn tải đúng tài nguyên nếu phản hồi là trang đăng nhập.

Ví dụ minh họa

Client tải endpoint xuất CSV, nhưng phiên hết hạn và dịch vụ trả HTML. Client lưu nội dung với đuôi .csv rồi bước đọc báo lỗi. Cần sửa xử lý status, redirect và loại nội dung; đổi proxy không tự làm phiên hợp lệ trở lại.

Tiếp tục tải có điều kiện

Range và phản hồi từng phần được mô tả trong RFC 9110. Resume chỉ phù hợp khi client và server hỗ trợ, đồng thời phần được nối thuộc cùng tài nguyên. Không nối mù một bản tải mới vào tệp cũ nếu server trả toàn bộ nội dung hoặc tài nguyên đã thay đổi.

Dùng khả năng resume theo tài liệu client. Nếu không xác minh được tính nhất quán, tải lại có kiểm soát sang tệp tạm khác và kiểm tra, không ghi đè bản dữ liệu đã xác nhận.

Checksum giúp gì?

Checksum đối chiếu được nội dung byte, nhưng giá trị tham chiếu cũng phải đáng tin. Một giá trị lấy cùng nguồn đã bị thay đổi không tự chứng minh nguồn an toàn. Không tải phần mềm từ nguồn lạ rồi chỉ dựa vào checksum để quyết định chạy.

Báo cáo sự cố

Ghi dung lượng dự kiến, dung lượng nhận, status, thời điểm kết thúc và thông báo client. Che token URL và không gửi tệp khách hàng qua bình luận. Đọc thêm timeout và reset nếu đường truyền bị đóng trước khi hoàn thành.