Cara Mengamankan Situs Web dari Kerentanan SQL Injection
Cara Mengamankan Situs Web dari Kerentanan SQL Injection
SQL Injection (SQLi) adalah salah satu serangan paling populer yang sering digunakan hacker untuk membobol database sebuah website. Dengan memanfaatkan celah pada input pengguna (form login, search bar, atau URL parameter), penyerang bisa menyisipkan kode SQL berbahaya untuk membaca, mengubah, bahkan menghapus data penting.
Kalau kamu mengelola website, memahami cara mencegah SQL Injection adalah hal yang wajib. Berikut beberapa langkah praktis untuk mengamankan situs webmu:
1. Gunakan Prepared Statements (Parameterized Query)
Kesalahan umum developer adalah langsung menggabungkan input pengguna dengan query SQL.
Contoh tidak aman:
SELECT * FROM users WHERE username = ' " + userInput + " ' AND password = ' " + passInput + " ';
Solusinya adalah gunakan prepared statements:
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$stmt->execute([$username, $password]);
Dengan begitu, input akan dianggap sebagai data, bukan perintah SQL.
2. Terapkan Stored Procedures
Stored procedures bisa membantu membatasi query agar hanya menjalankan perintah tertentu. Ini membuat ruang gerak penyerang jauh lebih sempit.
3. Validasi & Sanitasi Input
Batasi jenis karakter yang boleh dimasukkan (misalnya hanya huruf/angka untuk username).
Gunakan fungsi seperti htmlspecialchars() atau filter input sesuai bahasa pemrograman yang dipakai.
4. Gunakan Hak Akses Database yang Minim
Jangan berikan akun database aplikasi dengan akses root. Buat user khusus dengan hak terbatas, misalnya hanya bisa SELECT atau INSERT sesuai kebutuhan.
5. Terapkan Web Application Firewall (WAF)
WAF dapat mendeteksi pola serangan SQL Injection dan memblokirnya sebelum mencapai server. Banyak layanan hosting modern sudah menyediakan fitur ini.
6. Update Framework & Database Secara Berkala
Kerentanan sering ditemukan di versi lama framework, CMS (seperti WordPress, Laravel), atau database. Pastikan kamu selalu menggunakan versi terbaru agar tidak mudah dieksploitasi.
7. Lakukan Penetration Testing
Tes keamanan secara berkala dengan tools seperti SQLMap atau minta pihak ketiga melakukan audit keamanan. Dengan begitu, celah bisa ditemukan sebelum hacker menemukannya.
Kesimpulan
SQL Injection memang ancaman serius, tapi bisa dicegah dengan praktik coding yang aman, validasi input, serta pengaturan hak akses yang tepat. Ingat, keamanan website bukan hanya soal melindungi data, tapi juga soal menjaga kepercayaan pengguna.
0 Komentar
Posting Komentar