skip to main | skip to sidebar

HengkyZuckerberg SiPecanduKeyboard

Mengenai Saya

HengkyZuckerbergSiPecanduKeyboard
Lihat profil lengkapku
  • Entries (RSS)
  • Comments (RSS)
  • Home
  • About Us
  • Archives
  • Contact Us

Kamis, 31 Mei 2012

Mengatasi/Mencegah SQL Injection pada PHP

Diposting oleh HengkyZuckerbergSiPecanduKeyboard di 09.20

Sumber:  http://10511902.blog.unikom.ac.id/mengatasi-mencegah.33w
Hei hei hei.. udah pada tau tentang salah satu teknik hacking yang sangat dahsyat..???
 
"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..

Eitss tpi dsni ane ga ngajarin cara hacking nya tpi cara bagaimana cara mengantisipasinya :)
[ga bole sma admin kampus] hohoho pissss..

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
   
    $id = $_GET['id'];
    jadi setiap isi dari id pada url akan disimpan pada variable $id..
   
    dan untuk query ke database :
    "SELECT * FROM tbl_berita WHERE id='$id'"
 
     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:
    $id = abs((int)$_GET['id']);
 
    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 kereeen :)

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 :
 
$id_berita=$_GET['id_berita'];
$token=$_GET['token'];
$cek=md5(md5($id_berita).md5('kata acak'));
if($token==$cek){
   //syntak menampilkan berita disini
}
else{
   echo "SQL Injection detected..!!!!";
}
 
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:
 
$input_username=$_POST[username];
$input_password=$_POST[password];
 
$q="SELECT * FROM tbl_user where username='$input_username' and password='$input_passsword'";
$r=mysql_query($q);
$jml_row=mysql_num_rows($r);
if($jml_row > 0){
     echo "login sukses";
}
else{
     echo "login gagal";
}
 
nah algoritma autentikasi login seperti diatas sangat rentan terhadap penetrasi SQL Injection..
solusi pertama dengan melakukan enkripsi pada password yaitu dengan mengganti
skrip berikut :
 
$input_password=$_POST[password]; menjadi:
$input_password=md5(md5($_POST[password]).md5('karakter acak'));
 
tentunya yang berakibat dengn mengenkripsi semua password di database sesuai enkripsi diatas.. :)
 
(semoga ga pada pusing yah :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 :)


*note:tutorial ini murni tulisan pribadi, apabila ingin disebarkan mohon disertakan sumbernya thx :)
Kirimkan Ini lewat Email BlogThis! Bagikan ke X Berbagi ke Facebook

0 komentar:

Posting Komentar

Posting Lebih Baru Posting Lama Beranda
Langganan: Posting Komentar (Atom)

Sponsored

  • banners
  • banners
  • banners
  • banners

Blog Archive

  • ▼  2012 (25)
    • ►  September (1)
    • ►  Juni (2)
    • ▼  Mei (4)
      • Mengatasi/Mencegah SQL Injection pada PHP
      • Cara Simple Membuat Clean URL Dengan PHP
      • Cara buat menu print dengan PHP
      • Menggabung Database
    • ►  April (18)

Followers

Pages

  • Beranda
Diberdayakan oleh Blogger.

Popular Posts

  • Pengalaman orang lain menggunakan TP Link WA5210G
    Keuntungan: Harga murah So, harga murah vs kualitas.. Apakah sebanding? Menurut:.... Sharing di: http://sukrawan.com/2010/10/18/review...
  • Cara buat menu print dengan PHP
    Sumber:  http://rifkyiip.wordpress.com/category/php/ print dengan PHP March 30, 2009 waduh, di tempat kerja gw d haruskan pake PHP! (p...
  • Cara Simple Membuat Clean URL Dengan PHP
    Sumber :  http://www.herukurniawan.com/2009/09/cara-simple-membuat-clean-url-dengan-php/ Cara Simple Membuat Clean URL Dengan PHP ...
  • Mencari radio point to point untuk bisa menembus jarak 80 km
    http://www.forummikrotik.com/wireless-networking/11997-help-mengenai-sektoral-waveguide-jarak-jauh.html Ungkapan Pertanyaan dan Masalah= ...
  • Kehidupan Seorang Programmer
    Sumber: http://taufiqramadhan.blogspot.com/2010/01/kehidupan-seorang-programmer.html  Kehidupan Seorang Programmer Seperti logi...
  • (tanpa judul)
    Sumber :  http://blog.sibudi.net/memahami-sql-join-dengan-diagram-venn/ Memahami SQL Join dengan Diagram Venn Query   ...
  • Membuat Hit Counter Pengunjung
    Sumber: http://begitublog.com/motivasi-bisnis/membuat-hit-counter-sendiri-pakai-php-mudah-kok/ Membuat Hit Counter sendiri pakai PHP, mu...
  • Nasib programmer
    Nasib programmer di negara kita…   Dari beberapa kali diskusi dengan temen-temen yang bekerja sebagai programmer, baik sebagai freelanc...
  • Cara Pasang Widget Share Artikel Facebook
    Sumber :  http://hasiaulia.net/2010/02/22/cara-pasang-widget-share-artikel-facebook/ Cara Pasang Widget Share Artikel Facebook Post...
  • Nasib Istri seorang programmer
     Diposkan oleh Chaerul Umam di 23:13 Kamis, 29 Juli 2010 Label: Entertainment 0 Comments Sebelum memutuskan untuk men...

Blogroll

About

Blog Archive

  • ▼  2012 (25)
    • ►  September (1)
    • ►  Juni (2)
    • ▼  Mei (4)
      • Mengatasi/Mencegah SQL Injection pada PHP
      • Cara Simple Membuat Clean URL Dengan PHP
      • Cara buat menu print dengan PHP
      • Menggabung Database
    • ►  April (18)

Blogger templates

Blogger news

Recent Posts With Thumbnails v3

 

© 2010 My Web Blog
designed by DT Website Templates | Bloggerized by Agus Ramadhani | Zoomtemplate.com