Tuesday, November 11, 2014


Mengatasi Bug SQL Injection di Form Login


By on 10:04 PM

Mengatasi Bug SQL Injection di Form Login

SQL Injection


Kali ini admin akan memberi sedikit tutorial untuk Bug SQL Ijenction yang terdapat di form login, oke langsung saja ke tkp. :D

yang pertama bagaimana cara kita mengetahui sebuah website kita mengandung Bug SQL Injection yang satu ini, yang pertama masuk kedalam page user login atau admin login di sini saya praktekin pada localhost saya, setelah sudah masuk di halaman login user atau login admin selanjutnya kita harus tahu user loginnya terlebih dahulu, setelah tahu user login lalu masukkan pada user input tapi kita tambah dengan tanda '# (petik pagar)

form login


setelah di inputkan user dengan tambahan '# (petik pagar) jika kita berhasil masuk ke halaman admin maka berarti web tersebut vuln dengan bug ini, mungkin dari temen-temen ada yang belum tahu apa arti tanda '# (petik pagar), tanda '# (petik pagar) merupakan perintah comment pada sql, jadi maksud dari proses tersebut ialah setelah mengecek user,lalu jika terdapat user yang kita input kan pada database kita, maka proses query selanjutnya tidak akan di jalankan, melainkan langsung ke proses selanjutnya yaitu redirect ke halaman index.


Proses ke dua ialah .. bagaiamana cara kita mengatasinya.
Silahkan anda lihat script cek_login.php yang memang saya buat sederhana untuk bisa di buat praktek ini.

<?php
mysql_connect("localhost","root","") // koneksi ke database;
mysql_select_db("contoh") // pilih database;
 

$user=$_POST['user'] // user post;
$pass=md5($_POST['pass']) // pass post;

$cek=mysql_query("select * from admin where user='$user' AND pass='$pass'") // cek ke query;
$ketemu=mysql_num_rows($cek) // menghitung jumlah query yang di cek;
$r=mysql_fetch_array($cek) ;
if($ketemu>0){
session_start();
$_SESSION['admin']=$r['user'];
header("Location:.");
}

else{
header("Location:.");
}
?>


seteleh melihat code php di atas, masalahnya ialah pada :

$user=$_POST['user'] // user post;
$pass=md5($_POST['pass']) // pass post;

 kita belum memfilter proses pengambilan data yang di inputkan dari form login, guna memfilter ini agar karakter yang aneh atau yang tidak inginkan tidak ikut di proses, bagaimana cara memfilter karakter ?

1. Buat sebuah fungsi, di sini saya membuat fungsi dengan nama antiinjektin:

script :

function antiinjektion($data){
    $filter=mysql_real_escape_string(htmlspecialchars(stripslashes(strip_tags($data, ENT_QUOTES))));
    return $filter;
}



jadi script cek_login nya :

<?php
mysql_connect("localhost","root","");
mysql_select_db("contoh");

function antiinjektion($data){
    $filter=mysql_real_escape_string(htmlspecialchars(stripslashes(strip_tags($data, ENT_QUOTES))));
    return $filter;
}

$user=antiinjektion($_POST['user']);
$pass=antiinjektion(md5($_POST['pass']));

$cek=mysql_query("select * from admin where user='$user' AND pass='$pass'");
$ketemu=mysql_num_rows($cek);
$r=mysql_fetch_array($cek) ;
if($ketemu>0){
session_start();
$_SESSION['admin']=$r['user'];
header("Location:.");
}
else{
echo "Error";
}
?>


oke selanjutnya save, lalu jalankan maka masalah Bug SQL Injektion pada web kita bisa teratasi ..
sekian tutorial dari saya semoga dapat bermanfaat ..

Tukang Coding
Judul: Mengatasi Bug SQL Injection di Form Login
Review oleh: Tukang Coding | Template TreTans 1.0
Update pada: 10:04 PM | Rating: 4.5

Comment for "Mengatasi Bug SQL Injection di Form Login"

1 comments:

Follow Me on Twitter