Keamanan: Rahasia dan Injeksi di Kode Generated

Model belajar dari kode publik, termasuk contoh tutorial yang sengaja disederhanakan — dan penyederhanaan itulah yang sering berbahaya. Dua pola paling sering muncul: kredensial yang ditulis langsung di berkas, dan query database yang dirangkai dengan menyambung string masukan pengguna. Keduanya lolos review sepintas karena kodenya berjalan normal saat diuji dengan data yang wajar. Perbaikannya baku: rahasia dibaca dari environment variable, dan query memakai parameter binding sehingga masukan pengguna tidak pernah menjadi bagian perintah SQL.

👀 Contoh dulu

// ❌ rawan SQL injection
// db.query('SELECT * FROM users WHERE email = ' + email);

// ✅ parameter binding
// db.query('SELECT * FROM users WHERE email = ?', [email]);

Hasilnya: Dengan binding, masukan berisi kutip atau kata kunci SQL diperlakukan sebagai data biasa, bukan perintah.

📝 Sekarang giliranmu

Perbaiki kode AI di editor: baca kunci dari environment variable ke dalam variabel apiKey, lalu ganti query rawan injeksi menjadi bentuk berparameter dengan tanda ? dan array [email].

Preview