Cara Sederhana Mencegah SQL Injection


sumber gambar : http://www.unixwiz.net

Biasanya dalam menampilkan sebuah data dalam pemrograman web seperti PHP itu membutuhkan ID. Kebanyakan ID yang digunakan itu berupa angka. ID yang digunakan akan tampak pada URL, misalnya profil.php?id=1. Ketika ID dimasukkan dengan karakter selain angka akan muncul pesan error. Biasanya pesan tersebut adalah

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given inC:\xampp\htdocs\pw\viewnews.php on line 14

Salah satu teknik hacking sebuah website adalah dengan cara memanfaatkan bug tersebut. Di internet banyak sekali yang menyediakan tutorial mengenai hacking website menggunakan teknik SQL Injection.

Dibawah ini adalah contoh syntax PHP yang belum aman dari SQL Injection :

<?php

include ‘koneksi.php’;

$sql = “SELECT * FROM user WHERE id=”.$_GET[‘id’];

$result = mysql_query($sql);

while($data = mysql_fetch_array()){

echo “<h2>”.$data[‘nama’].”</h2>”;

}

?>

 

tentu saja syntax di atas jika dimasukkan ID selain angka akan mencul pesan errornya. Untuk memperbaikinya Anda bisa mengeditnya seperti ini :

<?php

include ‘koneksi.php’;

$sql = “SELECT * FROM user WHERE id=”.$_GET[‘id’];

$result = mysql_query($sql);

if(!ctype_digit($_GET[‘id’])){
echo ” <script>window.history.go(-1);</script> “;
}

else {

while($data = mysql_fetch_array()){

echo “<h2>”.$data[‘nama’].”</h2>”;

}

}

?>

 

Syntax diatas jika ID nya di masukkan karakter selain angka maka akan kembali kehalaman sebelumnya, dan jika syntax berupa angka maka data akan diproses.

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s