🔍Apa Itu SQL Injection?
SQL Injection terjadi ketika penyerang “menyuntikkan” (inject) kode SQL berbahaya ke dalam input pengguna (misalnya kolom login atau form pencarian), lalu kode itu dieksekusi oleh database server.
Biasanya karena aplikasi tidak menyaring atau memvalidasi input pengguna dengan benar, jadi penyerang bisa masukin kode SQL tambahan untuk:
- Melihat data yang seharusnya tidak boleh dilihat (seperti password, email user lain)
- Menghapus data
- Mengubah data
- Bahkan mengambil alih akses admin
🧪 Contoh SQL Injection Sederhana
Misal, kamu punya query login kayak gini:
SELECT * FROM users WHERE username = 'user' AND password = 'pass';
Tapi si attacker masukin input seperti ini di field username dan password:
' OR '1'='1
Maka query jadi:
SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '' OR '1'='1';
Karena '1'='1'
itu selalu true, maka query ini akan lolos, dan sistem bisa saja menganggap login berhasil! 😱
🚨 Dampaknya
- Kebocoran data
- Akses tidak sah ke akun lain
- Penghapusan atau modifikasi data
- Bisa sampai ke pengambilalihan server database