Loading halaman Tutorial Visual Basic, Delphi, PHP - Calon Programer : Mencegah SQL Injection dengan PHP ...

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"
  1. <?php    
  2. function filterinjection($val){    
  3. // Karakter yang sering digunakan untuk sqlInjection    
  4. $char = array ('-','/','\\',',','.','#',':',';','\'','"',"'",'[',']','{','}',')','(','|','`','~','!','@','%','$','^','&','*','=','?','+');  
  5.   
  6. // Hilangkan karakter yang telah disebutkan di array $char  
  7. $cleanval = str_replace($char, '', trim($val));     
  8.     
  9. return $cleanval;    
  10. }    
  11. ?>    

Dan cara pemanggilannya sebagai berikut :
  1. <?php  
  2. include 'connect.php';  
  3. include ' antiinjection .php'//menyertakan file  antiinjection.php  
  4.   
  5. $id = filterinjection($_GET[id]); //proses penyaringan input dari user  
  6. $hasil = mysql_query("SELECT * FROM user WHERE id=$id");  
  7. while ($row = mysql_fetch_array($result)) {  
  8.   echo $row['username'];  
  9.   echo '<br />';  
  10. }  
  11. mysql_close();  
  12. ?>  

Referensi:
http://devilzc0de.org/forum/thread-5701

7 Reply :

  1. Alhamdullilah, sangat bermanfaat nih kang artikelnya.
    Baris 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

    BalasHapus
  2. @sgenkJadi begini mas, disini saya ambil simulasi proses menampilkan data berdasarkan variable "id"
    misalkan 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.

    BalasHapus
  3. terimakasih penjelasannya kang, sekarang saya sudah agak mengerti sedikit...
    Tapi masih banyak bingungnya :-D
    hehehehe

    BalasHapus
  4. yaudah mas sgenk, script php untuk tampilin datanya gimana?

    BalasHapus
  5. waduhhhh, scriptnya ada di pc kang, belum saya copy ke hp.

    BalasHapus
  6. @sgenk: Yaudah ditunggu contoh script ente mas, siapa tau bisa sedikit membantu

    BalasHapus
  7. makasih om,, ilmunya sangat bemanfaat. bahaya juga ya sql injection ini... ckckck

    BalasHapus

Jika ada pertanyaan atau request,Komentar pada tab blogger akan lebih memudahkan saya untuk membalasnya karena lebih mudah melakukan pengecekan komentar.