Sudah banyak sekali artikel-artikel yang membahas tentang cara menghindari PHP Injeksi, namun disini saya akan menjelaskan lebih detail lagi caranya beserta source code nya sehingga pembaca lebih mudah untuk mengimplementasikannya.
Sepertinya sudah tidak asing lagi mendengar kata PHP Injeksi, tapi beberapa mungkin ada orang yang belum tau apa itu PHP Injeksi?PHP Injeksi adalah sebuah istilah ketika seorang penyusup membongkar security web dengan cara memasukan skrip-skrip PHP maupun JavaScript kedalam sistem web melalui media inputan seperti News, ShutBox ataupun lewat URL target.
Untuk menghindari hal-hal tersebut ada beberapa langkah yang dapat kita lakukan, yaitu:
1. Anda dapat sedikit merubah teknik kode saat mengeksekusi isi berita(News). Berikut adalah contoh kodenya:
$dbh = mysql_connect(‘localhost’, ‘username’, ‘password’);
mysql_select_db (‘cmsdb’, $dbh);
$id = mysql_real_escape_string($_GET[‘id’]);< br />$SQL = “SELECT * FROM (nama_tabel) WHERE (id)= ‘”.$id.”’”;
$result = mysql_query($SQL, $dbh) OR die (mysql_error($dbh));
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){
$headline = stripslashes($row[‘headline’]);
Echo “Headline” .$headline;
}
Mysql_free_result($result);
Mysql_close($dbh);
?>
2. Anda dapat melakukan validasi data yang berasal dari URL. Contohnya:
$dbh = mysql_connect(‘localhost’, ‘username’, ‘password’);
mysql_select_db (‘cmsdb’, $dbh);
$id = $_GET[‘id’];
if (!is_numeric($id)){
die (“Jangan memodifikasi ID berita”);
}
$SQL = “SELECT * FROM (nama_table) WHERE (id) = ‘”.$id.”’”;
$result = mysql_query($SQL, $dbh) OR die (mysql_error($dbh));
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){
$headline = stripslashes($row[‘headline’]);
Echo “Headline” .$headline;
}
Mysql_free_result($result);
Mysql_close($dbh);
?>
3. Membatasi panjang digit user saat login. Contohnya:
$dbh = mysql_connect(‘localhost’, ‘username’, ‘password’);
mysql_select_db (‘cmsdb’, $dbh);
$username = $_POST[‘username’];
$password = $_POST[‘password’];
$length = strlen ($username);
// Apabila datanya terlalu panjang, maka pesan akan ditolak
If ($length < 5 || $length > 25) {
die (‘Digit user anda berlebihan!!! Masukan hanya antara 5 sampai 25 digit saja’);
}
// Menjalankan query
$SQL = “SELECT * FROM users WHERE username = ‘”.$username.”’”;
$SQL .= “AND password=PASSWORD (‘$password’) “;
$result = mysql_query ($SQL);
Mysql_close ($dbh);
?>
Penulis : Adi Suratno Sukmo Kusumo - Peserta Content Contest 2009
Sumber : beritanet.com
Sepertinya sudah tidak asing lagi mendengar kata PHP Injeksi, tapi beberapa mungkin ada orang yang belum tau apa itu PHP Injeksi?PHP Injeksi adalah sebuah istilah ketika seorang penyusup membongkar security web dengan cara memasukan skrip-skrip PHP maupun JavaScript kedalam sistem web melalui media inputan seperti News, ShutBox ataupun lewat URL target.
Untuk menghindari hal-hal tersebut ada beberapa langkah yang dapat kita lakukan, yaitu:
1. Anda dapat sedikit merubah teknik kode saat mengeksekusi isi berita(News). Berikut adalah contoh kodenya:
$dbh = mysql_connect(‘localhost’, ‘username’, ‘password’);
mysql_select_db (‘cmsdb’, $dbh);
$id = mysql_real_escape_string($_GET[‘id’]);< br />$SQL = “SELECT * FROM (nama_tabel) WHERE (id)= ‘”.$id.”’”;
$result = mysql_query($SQL, $dbh) OR die (mysql_error($dbh));
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){
$headline = stripslashes($row[‘headline’]);
Echo “Headline” .$headline;
}
Mysql_free_result($result);
Mysql_close($dbh);
?>
2. Anda dapat melakukan validasi data yang berasal dari URL. Contohnya:
$dbh = mysql_connect(‘localhost’, ‘username’, ‘password’);
mysql_select_db (‘cmsdb’, $dbh);
$id = $_GET[‘id’];
if (!is_numeric($id)){
die (“Jangan memodifikasi ID berita”);
}
$SQL = “SELECT * FROM (nama_table) WHERE (id) = ‘”.$id.”’”;
$result = mysql_query($SQL, $dbh) OR die (mysql_error($dbh));
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){
$headline = stripslashes($row[‘headline’]);
Echo “Headline” .$headline;
}
Mysql_free_result($result);
Mysql_close($dbh);
?>
3. Membatasi panjang digit user saat login. Contohnya:
$dbh = mysql_connect(‘localhost’, ‘username’, ‘password’);
mysql_select_db (‘cmsdb’, $dbh);
$username = $_POST[‘username’];
$password = $_POST[‘password’];
$length = strlen ($username);
// Apabila datanya terlalu panjang, maka pesan akan ditolak
If ($length < 5 || $length > 25) {
die (‘Digit user anda berlebihan!!! Masukan hanya antara 5 sampai 25 digit saja’);
}
// Menjalankan query
$SQL = “SELECT * FROM users WHERE username = ‘”.$username.”’”;
$SQL .= “AND password=PASSWORD (‘$password’) “;
$result = mysql_query ($SQL);
Mysql_close ($dbh);
?>
Penulis : Adi Suratno Sukmo Kusumo - Peserta Content Contest 2009
Sumber : beritanet.com
Anda baru saja membaca artikel yang berkategori dengan judul PHP Injeksi Bisa di Minimalisir. Anda bisa bookmark halaman ini dengan URL http://blogku-duniaku.blogspot.com/2009/12/php-injeksi-bisa-di-minimalisir.html. Terima kasih!
Ditulis oleh:
zenonk - Rabu, 09 Desember 2009





Belum ada komentar untuk "PHP Injeksi Bisa di Minimalisir"
Posting Komentar