~/VibeHandbook
PDF miễn phí

Chương 18 · 05

Xử lý file và tải file lên

Cho phép người dùng tải file lên là một bãi mìn âm thầm, và bản nháp đầu tiên của AI hầu như không bao giờ bịt hết các lỗ hổng:

  • Xác thực loại và kích thước file. Không có giới hạn, ai đó sẽ tải lên một file 10 GB hoặc một file thực thi (executable). Hãy kiểm tra nội dung thực sự, không chỉ phần đuôi mở rộng của tên file, thứ mà ai cũng có thể đổi tên.
  • Đừng bao giờ tin tưởng tên file. Một tên file như ../../etc/passwd có thể khiến một trình xử lý ngây thơ ghi ra ngoài thư mục dự định (gọi là path traversal — dò đường qua thư mục). Hãy tự sinh ra tên an toàn cho riêng bạn thay vì dùng tên được cung cấp.
  • Đừng phục vụ file tải lên từ cùng origin (nguồn gốc) với ứng dụng của bạn, và đừng để file được tải lên bị thực thi như mã lệnh. Một file do người dùng cung cấp bị thả vào một thư mục mà server của bạn sẽ chạy là một con đường trực tiếp dẫn đến việc bị chiếm quyền điều khiển.

Bạn không cần tự xây dựng tất cả những thứ này — một dịch vụ lưu trữ (storage service) xử lý phần lớn — nhưng bạn phải yêu cầu, vì AI sẽ không tự nguyện làm điều đó. "Thêm tính năng tải file lên" cho bạn con đường suôn sẻ nhất. "Thêm tính năng tải file lên xác thực loại và kích thước file, từ chối mọi thứ trừ ảnh, và lưu file dưới tên được sinh ra" cho bạn thứ gì đó gần với an toàn hơn.

Muốn bản ngoại tuyến?

Tải trọn cuốn sách dưới dạng PDF hoặc EPUB — miễn phí.