[EASY METHOD] Cara Menutup Bug SQLi

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 dari karakter-karakter pelolos bentukan string yang diimbuhkan dalam pernyataan SQL atau masukan pengguna tidak bertipe kuat dan karenanya dijalankan tidak sesuai harapan. Ini sebenarnya adalah sebuah contoh dari sebuah kategori celah keamanan yang lebih umum 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. SQL Map
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.
  1. Havij
Havij adalah alat untuk melakukan SQL Injection yang menguji penetrasi untuk menemukan dan mengeksploitasi kerentanan SQL Injection pada suatu halaman web.
Contoh script yang vuln terhadap SQLi:
<?php 
include "admin/config.php";
$id_anu = $_GET['id_anu'];
$result = mysql_query("SELECT * FROM anu where id_anu ='$id_anu' ");        

   while($row = mysql_fetch_array($result)){
?>
Di 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.
  1. Memberi filter pada karakter yang akan dimasukkan ke dalam query. Kita halau karakter seperti (-) terlebih dahulu.
if($id_anu < 0) {
   echo "Patched.";
   exit;
}
Definisi logika: Jika nilai $id kurang dari 0, maka akan tampil "Patched." | Mencegah karakter (-).
  1. Memberi perintah is_numeric. 
    if(!is_numeric($id_anu)) {
       echo "Patched.";
       exit;
    }
    Definisi logika: Jika nilai $id bukan golongan darin numeric atau angka, maka akan tampil "Patched."
  2. Memberi fungsi mysql_real_escape_string.
    mysql_real_escape_string adalah fungsi PHP yang digunakan untuk memberi backslash di beberapa kode untuk ditampilkan pada halaman, namun saat menyimpan menuju sql, kode akan tetap normal tanpa ada backslash.
$id_anu = mysql_real_escape_string($_GET['$id_anu']);
Special Thanks for,
x'1n73ct , Abaykhan , SurabayaBlackHat , AhhzayShh