Pagi ini saya maen ke blog tetangga dan disana saya baca postingan dia tentang apa yang dilakukannya semalam, dia melakukan hacking terhadap salah satu website luar sono dengan trik SQL Injection.....hem, saya yakin si admin web pagi ini pasti sibuk benarin witusnya yang dijebol! wah kasian amat yach, saya sempat nitip pesan ke tetangga blog, kenapa engga diinfo aja ke adminnya biar dia tutup dulu celahnya, tapi kata tetangga....itu kan kecerobohan si admin.....hem ada benarnya juga yach...ya memang dunia IT itu selalu up to date setiap waktu makanya jangan pernah tertinggal dengan dunia informasi IT karena bisa jadi bumerang, wuakkak....wuakk...bumerang itu maksudnya saya istrinya pak merang bro..!
well......
Kalo kita bicara tentang kasus seperti kejadian yang saya ceritakan diatas, memang trik SQL Injection itu sebenarnya udah cara lama dalam melakukan Hacking, cuman mungkin seperti apa yang saya bilang pengetahuan itu dinamis dan selalu terupdate!, saya akhirnya tertarik tuk cari cari informasi mengenai hal ini, dan hasilnya...saya dapatkan trik bagaimana menutup celah sehingga kesalahan seperti ini tidak terjadi, ini dilakukan saat penulisan script program, dulu kita cuman tau bahwa teknik SQL Injection itu cuman sebatas pada form login, tapi ternyata teknik itu bukan hanya dalam scope itu aja, malah lebih luas dari perkiraan kita, itulah yang saya katakan diawal tadi "Pengetahuan"
Secara umum ada 2 cara untuk menangani SQL Injection. Cara yang pertama adalah “memblokir karakter yang tidak lazim”. Berikut adalah contoh scriptnya :
Saya akan jelaskan script di atas. Mula-mula username dan password di-cek apakah terdapat karakter petik (‘). Jika terdapat karakter petik maka akan muncul pesan “Gagal masuk”. Jika tidak ditemukan karakter petik (‘) maka akan muncul pesan “Berhasil masuk”. Lalu ?? Bagaimana dengan teknik di atas ?. Permasalahannya adalah ada banyak karakter lain yang perlu di-blok selain karakter petik, misalnya karakter $, %, !, *, dan ratusan karakter lainnya. Semuanya harus di-blok satu-persatu. Agak repot bukan ?
Cara kedua untuk menangkal SQL Injection adalah “hanya mengizinkan karakter tertentu”. Ini adalah cara yang paling saya sukai dan direkomendasikan oleh para hacker. Berikut adalah contoh scriptnya :
if ((preg_match("/^[a-zA-Z0-9 _]/", $username)) and (preg_match("/^[a-zA-Z0-9 _]/", $password))) { echo “Berhasil masuk”; } else { echo “Gagal masuk”; }
Script di atas saya dapatkan dari seorang hacker. Jadi berterimakasihlah kepada para hacker tersebut =). Saya akan jelaskan sedikit script tersebut. Username dan password akan di-cek apakah sesuai dengan format a-z, A-Z, 0-9, spasi ( ), dan underscore (_). Jika format sesuai maka muncul tulisan “Berhasil masuk”. Tetapi jika ada karakter di luar format tersebut maka akan muncul tulisan “Gagal masuk”.
masih ada seeh cara yang lain untuk menangani SQL Injection, seperti script berikut ini :