Mencegah SQL Injection pada PHP
SQL Injection, tekhnik ini merupakan salah satu teknik hacking yang sangat dahsyat dan banyak di pakai oleh para peretas.
"SQL Injection" yaitu trik hacking dengan cara mengedit isi dari variabel get yang ada di url untuk melakukan penetrasi kedalam database.. teknik SQL Injection juga bsa di lakukan pada form login dengan membaypass atau melewati autentikasi login dengan syntak SQL..
Setelah ane kasih tutorial nya, sekarang ane kasih tau cara bagaimana mengantisipasinya.
okeh ini dia trik nya..
1. Dengan cara menjadikan variabel get menjadi absolute integer
Penjelasan:
Biasanya para hacker melakukan penetrasi terhadap variabel id yang kita letakkan pada url..
Contoh:
pada url http://webkamu/berita.php?id=1
ketika akan membaca isi dari variabel id biasanya kita menggunakan syntak
jadi setiap isi dari id pada url akan disimpan pada variable $id..
dan untuk query ke database :
nah melalui variabel $id ini lah para hacker menggunakan teknik SQL Injection, dengan memasukkan perintah2 SQL yang dapat mengeksploitasi database..
Solusinya:
kita buat id menjadi absolute integer dengan mengubah sintaks pembacaan variabel get id menjadi:
fungsi abs() digunakan untuk menghilangkan tipe data minus dan int digunakan untuk mengubah tipe data menjadi integer (hanya mengijinkan tipe data integer). jadi ketika variabel id pada url di rubah secara manual dan diisi dengan sintak SQL yang berupa string maka tetap dibaca 0.
2. Dengan menambahkan variabel get berisi enkripsi md5 yg divariasi pada url
jika awal url adalah
http://webkamu/berita.php?id=1
maka kita akan menambahkan variabel yg berisi enkripsi dari id yg kita modifikasi dengan string acak menjadi
http://webkamu/berita.php?id=1&token=9b0443e36affedbafe882a4bbb90eaec
nah sekilas terlihat mirip sma url2 facebook.. wahh boleeh juga tuch di Coba..
ok, saya jelaskan maksud dari variabel token diatas, jadi ketika awal kita memberikan link untuk next berita or previous berita atau berita lainnya.. pokok nya yang menampilkan berita lain dah.. kita isi
$token = md5(md5($id_berita).md5('kata acak'));
jadi href nya menjadi : berita.php?id=$id_berita&token=$token
sekarang pada halaman tampil berita kita tambahkan pengecekan apakah id berita diganti/diinject manual oleh user dengan cara :
nah slsai deh,, hehehe
bingung..??? semoga ngga deh yha.. klo bingung boleh dah rokoknya di isep dlu.. hehe (tpi jangan deket2 ma ane yha gan, ane ga ngerokok) pisssss..!!!
3. Khusus untuk form login, dengan melakukan enkripsi password atau merubah algoritma autentikasi login.
biasanya kita melakukan pengecekan ketika user login yaitu dengan melakukan query kedatabase:
nah algoritma autentikasi login seperti diatas sangat rentan terhadap penetrasi SQL Injection..
solusi pertama dengan melakukan enkripsi pada password yaitu dengan mengganti
skrip berikut :
tentunya yang berakibat dengn mengenkripsi semua password di database sesuai enkripsi diatas .... :D
solusi kedua yaitu dengan merubah algoritma menjadi
$d=mysql_fetch_array($r);
if($jml_row >0 && ($d[password]==$input_password)) << di tambah pengecekan inputan password thd password di dtabase OK deh sekian dlu trik mengatasi SQL Injection.nya.. klo ada yg mu ditanyain silakan kontak ane lbih lanjut by email or fb yha.. :) smoga bermanfaat :) Source : http://10511902.blog.unikom.ac.id/
Buat Sobat Bloger yang ingin tukar link Bisa Kunjungi
mas tolong saya web saya kena SQL injection sepertinya, bagaimana cara mengatasinya. Saya sedang mencoba bertahan tapi masih bingung cara ngatasinya. trims.
BalasHapusBoleh saya Liat WEb nya Mas ??
Hapus