Mengantisipasi Serangan SQL Injection pada Form Login
Diantara hal-hal urgen yang sering dilupakan oleh para programmer pemula adalah kurang memperhatikan keamanan pada form login dan tidak mengantisipasi serangan SQL Injection pada form login admin web yang mereka buat, banyak cara hacker membobol website korban salah satunya adalah dengan cara login byPass atau SQL injection pada halaman form login.
Login byPass adalah dengan menggunakan injection nilai true misal 1=1. sekarang coba periksa web Anda, buka halaman login, pada username ketikkan admin' or 1=1 dan pada password sembarang atau samakan dengan username, jika halaman admin Anda berhasil dibuka berarti web Anda tidak aman
Dan masih banyak SQL Injection yang lain diantaranya adalah:
' or 1=1 limit 1 -- -+
' or 1=1
admin' or '1'='1'
dan lain-lain
Nah pertanyaannya adalah
Bagaimana cara mencegah serangan SQL Injection atau login byPass ?
Gampang nggak ribet kok. begini, mohon perhatikan dengan cermat ya..
Perhatikan source code ini
$pass=$_POST['password'];
$user=$_POST['username'];
$sql=mysql_query("select * from admin where password='$pass' and username='$user'");
Jika source code login Anda seperti kode di atas maka dipastikan web Anda tidak aman karena kode di atas termasuk kode yang buruk dikarenakan belum ada pengaman untuk karangkter tanda petik, titik koma, dan simbol-simbol yg lain, maka dari itu coba gunakan fungsi mysql_real_escape() atau mysql_real_escape_string() sehingga menjadi seperti berikut ini
$pass=mysql_real_escape_string($_POST['password']);
$user=mysql_real_escape_string(trim($_POST['username']));
$sql=mysql_query("select * from admin where password='$pass' and username='$user'");
Keterangan : Fungsi mysql_real_escape_string digunakan untuk mem-bypass karakter spesial dalam query SQL, sehingga jika attacker mnyertakan karakter seperti ' ! ^ ] " dan lain sebagainya, maka fungsi ini tidak akan membaca karakter tersebut.
OK bro, silahkan dicoba, semoga sukses..
0 comments:
Post a Comment