SQL Injection adalah sebuah kata yang amat ditakuti oleh para web designer, semua kerja keras membuat website dapat hilang hanya karena sebuah coding yang tidak sempurna.
salah satu perintah PHP yang diyakini dapat menghalau SQL Injection adalah command dibawah ini
mysql_real_escape_string
dimana fungsi dari command ini adalah menghilangkan karakter khusus seperti ‘,\ dll. Fungsi yang sangat menarik karena dengan metode ini maka semua script SQL Injection dapat terhalau. jadi cukup taruh command ini di setiap halaman yang relevan maka kita sudah dapat mencegah SQL injection.
mudah bukan.
Sayangnya, coding yang kurang baik hanya akan membawa sebuah masalah baru, contohnya kita lihat sistem dibawah ini :
<?php
$host=”localhost”;
$username=”root”;
$password=”qwerty”;
$db_name=”test”;
$tbl_name=”members”;mysql_connect(“$host”, “$username”, “$password”)or die(“cannot connect”);
mysql_select_db(“$db_name”)or die(“cannot select DB”);$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);$sql=”SELECT * FROM $tbl_name WHERE username=’$myusername’ and password=’$mypassword’”;
$result=mysql_query($sql);$count=mysql_num_rows($result);
if($count==1){
echo “sukses!!!!”;
}
else {
echo “Wrong Username or Password”;
}
?>
Script diatas adalah sebuah fungsi sederhana dari PHP untuk melakukan cek username dan password yang tersimpan di database. sayangnya dengan metode ini, maka penggunaan tanda ‘ yang legalpun jadi tidak dapat digunakan.
jadi mohon maaf untuk Bapak Ma’ruf, berapa kalipun anda memasukkan nama anda, anda selamanya tidak akan dapat login pada situs/aplikasi PHP yang menggunakan script diatas. Silahkan anda ganti nama atau anda pecat programmer anda karena telah membuat program yang tidak sempurna.
Pustaka :
1. http://www.php.net/
2. http://id2.php.net/mysql_real_escape_string
Catatan Penulis :
Tulisan ini dibuat sebagai bagian dari tugas mata kuliah IF5166-Keamanan Informasi Sistem Lanjut pada Magister Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung.
Bandung, 19 Oktober 2008
Arief Dwi Putranto
NIM. 23208110