Penanganan berkas dan unggahan
Mengizinkan pengguna mengunggah berkas adalah ladang ranjau yang diam-diam, dan draf pertama AI hampir tidak pernah menutup lubangnya:
- Validasi tipe dan ukuran. Tanpa batas, seseorang mengunggah berkas 10 GB atau sebuah executable. Cek konten sesungguhnya, bukan hanya ekstensi nama berkas, yang bisa diganti nama oleh siapa saja.
- Jangan pernah percaya nama berkas. Nama berkas seperti
../../etc/passwdbisa membuat handler yang naif menulis di luar folder yang dimaksud (ini disebut path traversal). Buat nama aman kamu sendiri alih-alih memakai yang diberikan. - Jangan sajikan unggahan dari origin yang sama dengan aplikasi kamu, dan jangan biarkan berkas yang diunggah dieksekusi sebagai kode. Berkas dari pengguna yang jatuh ke folder yang akan dijalankan server kamu adalah jalan langsung menuju pengambilalihan.
Kamu tidak harus membangun semua ini sendiri — sebuah layanan penyimpanan menangani sebagian besarnya — tapi kamu harus bertanya, karena AI tidak akan menawarkannya secara sukarela. "Tambahkan fitur unggah" memberimu jalur yang mulus. "Tambahkan fitur unggah yang memvalidasi tipe dan ukuran berkas, menolak apa pun selain gambar, dan menyimpan berkas dengan nama yang dihasilkan" memberimu sesuatu yang lebih mendekati aman.