Mohon tunggu...
Iswan Febriyanto
Iswan Febriyanto Mohon Tunggu... karyawan swasta -

Saya Dilahirkan di Gorontalo pada tanggal 5 Februari 1985, den diberi nama Iswan Febriyanto Saleh oleh kedua orang tua. Masa kecil dihabiskan di Gorontalo, dengan bersekolah di SDN 32 Kota Barat, lalu SLTP Negeri 1 Gorontalo dan menyelesaikan Pendidikan Menengah di SMU Negeri 3 Gorontalo pada tahun 2002. 6 Tahun mengais Ilmu di Kota Gudeg Yogyakarta. Sekarang Pernah bekerja sebagai Staff Internal Control RIMD PT. Bank Mega Tbk Cabang Gorontalo. Waktu luang sering di habiskan untuk mengelola Blog ini, dan terus mencoba berexperiment dengan PHP + MySQL, Linux dan tentu saja Dunia Akuntansi :D . Pernah menjadi NOC PT.Internux Gorontalo. Saya tertarik dengan Web Programming dan Networking Security. Saat ini Bekerja di PT. GOMEDS NETWORK yang bergerak dibidang Internet Service Provider (ISP) dan ‘mungkin’ akan mengajar WEB PROGRAMMING dan LINUX Fundamental di LKP Gorontalo Media Keluarga 22 Januari 2011, Saya mengucapkan Akad Nikah dan mempersunting mantan pacar saya Yurnaningsih Ipango, SE , dan memulai sebuah kehidupan baru sebagai ‘SUAMI’, saat ini Sang Istri tengah mengandung seorang manusia yang nantinya akan menyebut saya AYAH. Saya di Jejaring Sosial Sejak kuliah saya memang senang dengan jejaring sosial, ketika Friendster merajai Dunia Social Network kala itu, saya pun eksis didunia Friendster, tapi sayang sejak tahun 2009 saya memutuskan untuk menghapus account saya di Friendster dan fokus pada Facebook. Lalu di akhir tahun 2010 kemarin, saya mencoba bergabung dengan Twitter (agak telat yah :D ), hingga saat ini hanya memiliki 96 Follower :( . Jejaring sosial lainnya seperti Yahoo Koprol, Kombes, dll pernah saya ikuti, tapi tidak terlalu eksis dan semua account diatas saya lupa passwordnya :D Bagi Kawan-Kawan yang ingin berteman dengan saya, Silahkan Add Facebook dan Follow Twitter saya

Selanjutnya

Tutup

Inovasi

Teknik Menangkal SQL Injection

19 Desember 2009   09:53 Diperbarui: 26 Juni 2015   18:52 1164
+
Laporkan Konten
Laporkan Akun
Kompasiana adalah platform blog. Konten ini menjadi tanggung jawab bloger dan tidak mewakili pandangan redaksi Kompas.

Pada tulisan saya kali ini saya memilih untuk topik SQL Injection, karena belakangan ini banyak skali pemberitaan di media tentang pembobolan website-website pemerintahan yang saya pikir semuanya melewati bugs SQL Injection yang sangat fenomenal ini.

Kali ini kita akan membahas teknik dan algoritma menangkal SQL injection yg dilakukan melalui methode $_GET.

Mari kita lihat bersama: http://target.com/berita.php?content=detail&id=1

Pada umumnya aplikasi yg dibuat oleh programmer pemula, kode program pada berita.php adalah sebagai berikut

Source Code include ”connect.inc.php”; $sql = “SELECT * FROM berita WHERE id=”.$_GET['id'];$result = mysql_query($sql); while($news = mysql_fetch_array()) { echo “$news['title']”; echo “Posting pada tanggal: “.$news['tanggal_posting']; echo $news['content']; } ?>

Pada contoh Code diatas, terlihat bahwa sang Programmer tidak memberikan filter pada input $_GET['id']. Padahal ini sangat berbahaya jika penyusup mencoba melakukan teknik ini.

Dalam Source Code diatas, terdapat 2 kesalahan fatal :

  • Tidak memberikan filter atas variable $_GET['id']. Sehingga MySQL Server akan memberikan signal kesalahan ke browser(Jika pada PHP error_message=ON).
  • Tidak melakukan checking terhadap hasil dari Query.

Lalu, bagaimana cara penanggulangannya. Cara mudahnya kita modifikasi Source Code diatas seperti berikut ini:

Source Code include "connect.inc.php"; //Filter $_GET['id'] if(!ctype_digit($_GET['id'])){ die(”<!-- // ”); } $sql = “SELECT * FROM berita WHERE id=”.$_GET['id']; $result = mysql_query($sql); // –> Filter hasil query if(mysql_num_rows($result)<0){ while($news = mysql_fetch_array()){ echo "$news['title']"; echo “Posting pada tanggal: “.$news['tanggal_posting']; echo $news['content']; } } else { echo “Maaf, Berita tidak ditemukan.”; } ?>

Maksud dari Modifikasi Source Code diatas :

1. Pada Filter $_GET['id'], jika ia bernilai Integer(angka), maka proses query dilanjutkan oleh MySQL. Jika tidak, maka akan di tampilkan Alert “SQL Injection Detected.” dan kembali kehalaman selanjutnya.

HALAMAN :
  1. 1
  2. 2
Mohon tunggu...

Lihat Inovasi Selengkapnya
Beri Komentar
Berkomentarlah secara bijaksana dan bertanggung jawab. Komentar sepenuhnya menjadi tanggung jawab komentator seperti diatur dalam UU ITE

Belum ada komentar. Jadilah yang pertama untuk memberikan komentar!
LAPORKAN KONTEN
Alasan
Laporkan Konten
Laporkan Akun