Form báo giá cần nhận bản vẽ nhưng không nên biến website thành nơi chia sẻ hồ sơ khách công khai. Upload hồ sơ RFQ cần được thiết kế như một luồng tiếp nhận có kiểm tra và phân quyền. Nút “gửi thành công” chỉ nên xác nhận điều hệ thống thực sự đã làm, không đồng nghĩa file đã an toàn hoặc nhân viên đã đọc.

Chỉ nhận loại file phục vụ công việc
Bắt đầu bằng danh sách định dạng bộ phận báo giá thực sự cần mở, dung lượng hợp lý và cách xử lý file không hỗ trợ. Không mở tất cả định dạng chỉ vì khách có thể gửi nhiều loại. Kiểm tra phía máy chủ vẫn cần thiết dù trình duyệt đã giới hạn đuôi file.
OWASP khuyến nghị phòng vệ nhiều lớp khi upload, gồm kiểm tra định dạng, kích thước, tên, nơi lưu và quyền truy cập. Header Content-Type do người gửi cung cấp không phải bằng chứng file đúng loại. Không có một phép kiểm tra đơn lẻ bảo đảm tệp hoàn toàn an toàn.
Tách trạng thái nhận yêu cầu và trạng thái hồ sơ
| Trạng thái | Thông báo đúng |
|---|---|
| Yêu cầu được ghi nhận | Đã có mã tiếp nhận, chưa khẳng định hồ sơ đã duyệt |
| Tệp chờ kiểm tra | Chưa đưa vào luồng xử lý thông thường |
| Tệp bị từ chối | Nêu lý do có thể xử lý, giữ nội dung yêu cầu khi phù hợp |
| Hồ sơ được chuyển xử lý | Chỉ người có quyền nhận được quyền truy cập |
Nếu file quá lớn, cho khách biết giới hạn trước khi gửi. Một lỗi tệp không nên buộc khách nhập lại toàn bộ nhu cầu. Đường gửi thay thế phải là kênh doanh nghiệp đã duyệt, không tự đề nghị đưa bản vẽ mật lên một dịch vụ công khai.
Ví dụ giả định: file bản vẽ có thông tin dự án
Khách gửi hồ sơ giả định RFQ-25 gồm bản vẽ và tên dự án. Hệ thống lưu file vào thư mục public rồi gửi URL qua email cho cả nhóm. Dù URL khó đoán, người có link vẫn có thể tải nếu nơi phục vụ file không kiểm tra quyền. Cách phù hợp hơn là lưu trong khu vực riêng và chỉ cấp quyền cho người phụ trách, theo thiết kế đã được kiểm thử.
Tên file có thể chứa thông tin nhạy cảm. Nên có mã nội bộ để liên kết yêu cầu, giữ tên hiển thị theo chính sách và tránh đưa nguyên tên file vào đường dẫn public hoặc thông báo lỗi không cần thiết. Không gửi hồ sơ khách tới dịch vụ quét công cộng khi chưa có cơ sở cho phép chia sẻ dữ liệu.
Chốt trách nhiệm lưu giữ trước khi mở form
Ai được tải, khi nào hết quyền, hồ sơ được lưu bao lâu và khách liên hệ ai khi cần sửa hoặc thu hồi là các quyết định nghiệp vụ. Bộ phận kỹ thuật cần triển khai và kiểm tra theo các quyết định đó; không dùng câu “website có SSL” thay cho toàn bộ kiểm soát hồ sơ.
- Thử file hợp lệ, file quá lớn và file đổi đuôi nhưng sai nội dung.
- Thử truy cập khi chưa đăng nhập hoặc không có quyền.
- Kiểm tra yêu cầu còn nguyên khi tệp bị từ chối.
- Thử thu hồi quyền và đường xử lý file lỗi.
- Đối chiếu email thông báo: không chứa hồ sơ hoặc link vượt quyền.
Bài này tập trung an toàn tiếp nhận file, không thay checklist thông tin phục vụ báo giá. Khi trao đổi website B2B với Onter, hãy nêu định dạng hồ sơ, mức bảo mật và người xử lý. Tích hợp lưu trữ, quét tệp hoặc đăng nhập cần được xác nhận riêng, không mặc định đã có trong mọi form.

