December 14, 2016

Melindungi Aplikasi dari SQL Injection


Apakah SQL Injection itu?

SQL Injection adalah suatu teknik pemrograman yang memungkinkan seorang attacker untuk mengeksekusi perintah SQL yang tidak diotorisasikan, dengan memanfaatkan kelemahan input data yang tidak terenkripsi dalam query SQL yang membangun aplikasi web tersebut

CONTOH HALAMAN LOGIN






Halaman EXECLogin.ASP



CONTOH KASUS

Dalam sebuah contoh diatas dari kerentanan yang memungkinkan
jika menurut string yang dimasukkan ke field username/password ‘
Or ''='. Statement SQL akan mengeksekusinya sebagai :
SELECT * FROM tblUsers WHERE Username='' or ''='' and Password = '' or ''='' 

Contoh Kasus



Contoh Kasus

Pemanggilan Normal Yang diharapkan
List.asp?2, Maka yang di list adalah yang mempunyai id=2
Tapi jika yang dimasukan List.asp? 0 or 1=1 Apa yang terjadi ? Tentunya semua yang ada di database akan di list
Bagaimana jika yang dimasukan List.asp?2; Delete From TblUser

 Melindungi Aplikasi dari SQL Injection 

Jangan pernah untuk mengijinkan input karakter karekter khusus seperti ‘ “ ?, dan lain-lain
Contoh :
p_strUsername = Replace(Request.Form("txtUsername"), "'", "''")
p_strPassword = Replace(Request.Form("txtPassword"), "'", "''")
p_lngID = CLng(Request("ID"))