Kesalahan penulisan sintaks di dalam pemrograman dengan menggunakan bahasa PHP

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

Advertisement

Tags: ,

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 )

Connecting to %s


Follow

Get every new post delivered to your Inbox.