SQL INJECTION?? Bagaimana cara mengatasinya???
Dari pertanyaan yang ada pada kolom ini
Baiklah, untuk mengatasi sql injection ini memang sedikit mengalami kendala, apalagi dalam dunia maya tidak ada yang sempurna. karena semua masih memiliki kelemahan di sisi tertentu.
Tetapi alangkah baiknya jika kita mengatasi hal tersebut mulai dari hal-hal yang biasa dilakukan dari aktifitas sql injection, cara mengatasinya ialah dengan membatasi input karakter sql pada browser.
Hal yang dimaksud bukan membatasi user mengiput karakter terentu di addresbar browser, akan tetatpi membatasi script sql di php untuk membaca karakter tersebut. berikut sedikit script validasi pada php nya.
Contoh "antiinjection.php"
Dan cara pemanggilannya sebagai berikut :
Dari pertanyaan yang ada pada kolom ini
Baiklah, untuk mengatasi sql injection ini memang sedikit mengalami kendala, apalagi dalam dunia maya tidak ada yang sempurna. karena semua masih memiliki kelemahan di sisi tertentu.
Tetapi alangkah baiknya jika kita mengatasi hal tersebut mulai dari hal-hal yang biasa dilakukan dari aktifitas sql injection, cara mengatasinya ialah dengan membatasi input karakter sql pada browser.
Hal yang dimaksud bukan membatasi user mengiput karakter terentu di addresbar browser, akan tetatpi membatasi script sql di php untuk membaca karakter tersebut. berikut sedikit script validasi pada php nya.
Contoh "antiinjection.php"
- <?php
- function filterinjection($val){
- // Karakter yang sering digunakan untuk sqlInjection
- $char = array ('-','/','\\',',','.','#',':',';','\'','"',"'",'[',']','{','}',')','(','|','`','~','!','@','%','$','^','&','*','=','?','+');
- // Hilangkan karakter yang telah disebutkan di array $char
- $cleanval = str_replace($char, '', trim($val));
- return $cleanval;
- }
- ?>
Dan cara pemanggilannya sebagai berikut :
- <?php
- include 'connect.php';
- include ' antiinjection .php'; //menyertakan file antiinjection.php
- $id = filterinjection($_GET[id]); //proses penyaringan input dari user
- $hasil = mysql_query("SELECT * FROM user WHERE id=$id");
- while ($row = mysql_fetch_array($result)) {
- echo $row['username'];
- echo '<br />';
- }
- mysql_close();
- ?>
Referensi:
http://devilzc0de.org/forum/thread-5701
Alhamdullilah, sangat bermanfaat nih kang artikelnya.
BalasHapusBaris ke 5.
$id = filterinjection($_GET[id]); //proses penyaringan input dari user
($_GET[id]) ini maksudnya ??
Tolong lebih detail kang, mungkin mengambil input dari user berdasarkan 'id user' ya ?
Terimakasih
@sgenkJadi begini mas, disini saya ambil simulasi proses menampilkan data berdasarkan variable "id"
BalasHapusmisalkan saya menggunakan link sbb:
Visual BASIC
kalau link ini mas klik,maka hasil link yg tampil di url adalah "www.website.com/media.php?categorie=visualbasic&id=5"
nah biasanya sql injection itu menambahkan karakter khusus tsb di akhir link nya, misal jadi sprti ini "www.indrawan21.com/media.php?categorie=visualbasic&id=5' "
nah karena itu saat kita mengambil variable "id" dilakukan filter terhadap karakter2 tsb. agar script php yang mengambil data ke database tidak dijalankan jika terdapat karakter injection tsb.
terimakasih penjelasannya kang, sekarang saya sudah agak mengerti sedikit...
BalasHapusTapi masih banyak bingungnya :-D
hehehehe
yaudah mas sgenk, script php untuk tampilin datanya gimana?
BalasHapuswaduhhhh, scriptnya ada di pc kang, belum saya copy ke hp.
BalasHapus@sgenk: Yaudah ditunggu contoh script ente mas, siapa tau bisa sedikit membantu
BalasHapusmakasih om,, ilmunya sangat bemanfaat. bahaya juga ya sql injection ini... ckckck
BalasHapus