Cara Menutup Bug SQL Injection

Cara Menutup Bug SQL Injection. SQL Injection adalah sebuah teknik yang menyalahgunakan sebuah celah keamanan yang terjadi dalam lapisan basis data sebuah aplikasi. Celah ini terjadi ketika masukan pengguna tidak disaring secara benar.

Ini sebenarnya adalah sebuah contoh dari sebuah kategori celah keamanan yang lebih umum. Celah yang dapat terjadi setiap kali sebuah bahasa pemrograman atau skrip diimbuhkan di dalam bahasa pemrograman lain.

Ada beberapa tools yang bisa kita gunakan untuk melakukan SQL Injection, misalnya :

1. SQLMap. SQL Map adalah tools opensource yang mendeteksi dan melakukan exploit pada bug SQL injection secara otomatis. Dengan melakukan serangan SQL injection seorang attacker dapat mengambil alih serta memanipulasi sebuah database di dalam sebuah server.

2. Havij. Havij adalah alat untuk melakukan SQL Injection yang menguji penetrasi untuk menemukan dan mengeksploitasi kerentanan SQL Injection pada suatu halaman web.

Karena tutorial melakukan SQL Injection udah banyak berkeliaran di google, kali ini saya mau membahas tentang bagaimana cara menutup bug yang sangat rawan ini.

Contoh script yang vuln terhadap SQLi:

Dari source code diatas terlihat tidak adanya filter untuk karakter seperti ('), (-), (--) sehingga bisa disisipi dengan perintah SQLi. Lalu, bagaimana cara menutup bug tersebut? Kali ini saya akan menggunakan easy method untuk menutup bug tersebut.

Memberi filter pada karakter yang akan dimasukkan ke dalam query. Pertama-tama, kita halau karakter seperti (-) terlebih dahulu.

Jika nilai $id kurang dari 0, maka akan tampil kata Patched. Mencegah karakter (-).

Menggunakan Function is_numeric. Jika nilai $id bukan golongan darin numeric atau angka, maka akan tampil kata Patched.

Menggunakan Function mysql_real_escape_string. Function ini digunakan untuk memberi backslash di beberapa kode untuk ditampilkan pada halaman, namun saat menyimpan menuju sql, kode akan tetap normal tanpa ada backslash.

 

1 Comment

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *