1. Validasi Input
Periksa tipe data, panjang, dan format dengan whitelist. Contoh:
if (!username.matches("^[a-zA-Z0-9_]{3,20}$")) {
// tolak
}
2. Gunakan PreparedStatement (Wajib!)
Jangan gabungkan string. Gunakan parameter binding:
String sql = "SELECT * FROM users WHERE username = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, username);
ResultSet rs = ps.executeQuery();
3. Stored Procedure (Opsional)
Untuk logika kompleks, gunakan prosedur tersimpan.
4. Terapkan Least Privilege
Batasi hak akses akun DB hanya untuk kebutuhan minimal (misal SELECT saja).
5. Logging & Monitoring
Catat input mencurigakan dan analisis secara berkala.
flowchart LR
Input --> Validasi
Validasi -- Gagal --> Tolak
Validasi -- Lolos --> PreparedStmt
PreparedStmt --> Eksekusi
Eksekusi --> Hasil
Tolak --> Log
Hasil --> Log
Log --> Analisis
Dengan 5 langkah ini, aplikasi Java Anda aman dari SQL Injection. 🛡️
Javas Corner – Tips Java singkat, padat, jelas. Kunjungi javascorner.co.id!