Bayangkan sebuah restoran yang menerima pesanan lewat kertas. Jika pelayan menaruh isi kertas itu langsung ke dapur tanpa cek, orang bisa menulis "Semua pesanan — gratis" dan dapur akan melayaninya.
Penyerang mengirimkan permintaan ke aplikasi, mis. http://students.com?studentid=117 or 1=1;--
Server Web API meneruskan input itu ke database sebagai perintah SQL:
SELECT * FROM students WHERE studentid=117 or 1=1;
Server Basis Data SQL mengeksekusi perintah dan — karena kondisi 1=1 selalu benar — mengembalikan data semua siswa.
Server Web API menerima hasilnya dan mengirimkan data tersebut kembali ke penyerang.
Hasil: data sensitif bocor.
Data pribadi bocor (nama, email, password, transaksi).
Penyerang bisa menghapus atau mengubah data penting.
Layanan terganggu dan reputasi organisasi rusak.
Gunakan parameterized queries / prepared statements — cara aman agar input pengguna tidak menjadi bagian dari perintah SQL.
Validasi input: batasi format dan karakter yang diterima (contoh: angka harus angka).
Prinsip least privilege: akun database yang dipakai aplikasi hanya boleh membaca/menulis sesuai kebutuhan, bukan akses penuh.
Gunakan ORM & library terpercaya dan selalu update.
Pantau log & gunakan WAF (Web Application Firewall) untuk mendeteksi pola serangan.
Jika aplikasi meminta data dari pengguna (mis. form atau URL), anggap setiap masukan berpotensi berbahaya sampai terbukti aman. Jangan biarkan aplikasi "percaya bulat" pada input dari pengguna.
Injeksi SQL: celah sederhana yang bisa membocorkan data banyak orang — tapi bisa dicegah. Periksa validasi input, pakai prepared statements, dan batasi akses database sekarang juga!
#CyberSecurity #sqlinjection
ZmFjdHB5dmhwdXJkdHFkdQ==
0 Comments