Cara menutup Bug Sql injection di website
Selamat Datang di Blogspot Kandol Techo
Di artikel sebelumnya saya sudah membahas Macam - Macam Bug Sql Injection jadi terasa Kurang lengkap jika saya tidak menambahkan Bagaimana Cara menutup Bug Sql Injection.
Sql injection adalah jenis serangan Hacking yang memanfaatkan Suatu celah untuk mendaptkan data pada website.
Sql injection juga hampir mirip dengan serangan Cross-site scripting atau biasa disebut dengan XSS bahwa seorang hacktivist memanfaatkan aplikasi vektor dan juga comand dalam serangan tersebut. Contohnya adalah sebagai berikut :
- SQL Map
SQL Map adalah tools opensource yang digunakan oleh seorang hacktivist untuk mendeteksi dan melakukan exploit pada bug SQL injection secara otomatis. dengan melakukan serangan SQL injection seorang hacktivist dapat mengambil alih dan memanipulasi sebuah database di dalam sebuah server.
- Havij
Havij adalah sebuah software untuk melakukan aktivitas Hacking seperti SQL Injection atau menguji penetrasi untuk menemukan dan mengeksploitasi kerentanan SQL Injection pada suatu halaman website.
Dan berikut adalah Contoh script yang vuln terhadap SQLi:
<?php
$id = $_GET['id']; $db = mysql_connect('localhost', 'admin', '123456'); mysql_select_db("bug", $db); $query = "SELECT * FROM pengguna WHERE id = '".$id."'"; $hasil = mysql_query($query); echo $hasil; ?>
Di view-source code diatas terlihat tidak adanya filter untuk karakter seperti ( ' ), ( - ), ( -- ) sehingga bisa disisipi dengan perintah SQL injection. Lalu pertanyaannya adalah bagaimana cara menutup bug tersebut? Kali ini saya akan menggunakan method mudah untuk menutup bug tersebut. Silakan simak baik baik.
- Memasukan filter karakter seperti (-) terlebih dahulu.
- Memasukan perintah is_numeric.
if(!is_numeric($id_anu)) { echo "Patched."; exit; }
*note Jika nilai $id bukan golongan dari numeric atau angka, maka akan tampil "Patched." - 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.
if($id_anu < 0) {
echo "Patched.";
exit;
}
*note Jika nilai $id kurang dari 0, maka akan tampil "Patched." | Mencegah karakter (-).
$id_anu = mysql_real_escape_string($_GET['$id_anu']);
Mungkin Sekian Pembahasan nya, Mohon maaf bila ada kesalahan Dalam penulisan ataupun Bahasa yang kurang dimengerti Baca juga artikel saya sebelumnya mengenai Macam Macam Serangan Sql injection. Saya RooT@Kandol ucapkan terimakasih
Mantep gan... Sangat mudah dipahami dan berguna
ReplyDelete