Menutup Bug SQL Injection
Assalamualaikum Wr Wb
Kali ini Saya akan membahas cara menutup bug SQL Injection,SQL injection adalah sebuah aksi hacking yang dilakukan di aplikasi clientdengan cara memodifikasi perintah SQL yang ada di memori aplikasi client.
Disini Saya Akan membahas cara menutup bug SQL Injection, Langsung Saja Ke Pembahasan
Sebagai contoh Saya disini memiliki Source Code yang vuln terhadap SQL Injection
Code nya sebagai berikut :
<?php
$id = $_GET['id'];
$q = mysql_query("SELECT * FROM berita WHERE `url` = '".$id."' ") or die(mysql_error());
$row = mysql_fetch_array($q);
$qryUser = mysql_query("SELECT user FROM akses WHERE id_akses = '".$row['id_akses']."' ");
$rowUser = mysql_fetch_array($qryUser);
?>
Query SQL diatas vuln karena tidak ada filter sama sekali,sehingga kita bisa menyisipkan perintah SQL.Untuk Menangani Hal Tersebut,kita perlu memberi filter pada Query,dengan cara sebagai berikut :
1. Dengan Memberi Perintah is_numeric
Jadi Query SQL nya sebagai berikut :
<?php
$id = $_GET['id'];
$q = mysql_query("SELECT * FROM berita WHERE `url` = '".$id."' ") or die(mysql_error());
$row = mysql_fetch_array($q);
$qryUser = mysql_query("SELECT user FROM akses WHERE id_akses = '".$row['id_akses']."' ");
$rowUser = mysql_fetch_array($qryUser);
if(!is_numeric($id)){
header("location:index.php");
exit;
}
?>
Jadi jika perintah yang dimasukkan bukan numerik,maka akan redirect ke index.php
2. Menggunakan mysql_real_escape_string
$id = mysql_real_escape_string($_GET['id']);
Dengan begitu saat sang attacker mulai meng-inject target maka tidak ada error yang munculSekian pembahasan kali ini,jika ada salah saya mohon maaf
wasalamualaim wr wb
Referensi :
- Simple patching bug SQL injection ~ LAmongan Xploiter
- Cara Menutup Bug SQL Injection (SQLi) ~ abaykan

No comments :
Post a Comment