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 muncul



Sekian 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

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel