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"))