Bu Dersimizde bi önceki derste querystring yani get metodundan gelen saldırlardan korunma yöntemini anlatmıştım şimdi ise başka bir yöntem olan form post lardan yapılan injectionlardan korunma yollarını göstereceğim.
İlk olarak bir siteye sql inejection yapabilmek için en gerekli olan en önemli unsur asp sayfamızın sql de işleyeceği veriyi dinamik olarak almasıdır yani kullanıcının müdehale edebileceği imkanlar sağlamasıdır işte böyle durumlarda saldırıdan korunmak için düzenli bir filtreleme uygulamamız gerekmektedir.
Örnek Bir Saldırı:
Bir üye giriş bölümümüz var bu bölüme girişi formlar aracılığı ile sağlıyoruz.
2 adet form alanımız bunlardan biri kullanıcı adı bir diğer ise şifre ve bunlar form aracılığı ile uyekontrol.asp a gönderiyoruz.
verileri request.form ile çekip databasemize sql sorgumuzda kullanıyoruz ve buna göre işlem yaptırıyoruz.
Örnek Kod Cümlesi :
dim uye,sifre
uye = request.form("kullaniciadi")
sifre = request.form("sifre")
"Select * from Uyeler where uye_ad="& uye &" and Uye_pass="& sifre &""
işte bu şekilde oluşturulmuş bir sistem bariz bir şekilde açık barındırmaktadır.
Burada Saldırgan
'or' 'or 1=1 'or''=' gibi cümleciklerle sql cümlemizi bypass etmiş olur.
Korunma Yöntemi :
Bu Tip saldırılardan korunmak için öncelikle sql cümlemizde kullanacağımız veriyi filtreden geçirmemiz lazım bunun içinde bir fonksiyondan yararlanabiliriz.
<%
'/////////////////////////////////////////////////////
'// Güvenlik için girilen karakterleri uygun karakterlere çeviriyoruz
'/////////////////////////////////////////////////////
function OziBABA(sanalkurs)
sanalkurs = Replace (sanalkurs ,"`","",1,-1,1)
sanalkurs = Replace (sanalkurs ,"=","",1,-1,1)
sanalkurs = Replace (sanalkurs ,"&","",1,-1,1)
sanalkurs = Replace (sanalkurs ,"!","",1,-1,1)
sanalkurs = Replace (sanalkurs ,"*","",1,-1,1)
sanalkurs = Replace (sanalkurs ,"/","",1,-1,1)
sanalkurs = Replace (sanalkurs ,"\","",1,-1,1)
sanalkurs = Replace (sanalkurs ,"And","",1,-1,1)
sanalkurs = Replace (sanalkurs ,"'","",1,-1,1)
sanalkurs = Replace(sanalkurs, "-", "")
OziBABA=sanalkurs
end function
%>
Fonksiyonumuz bu bu şekilde gelen verideki tırnak işeratlerini vb karakterleri temizliyoruz.
Bunun kullanımı ise OziBABA(request.form("Gelenveri"))
şeklindedir.
Bu Şekilde form post saldırılarından kurtulabiliriz.
Herhangi bir soru veya şikayetiniz için
Ozanduman@yahoo.com.tr mail ve msn adresimi kullanabilirsiniz.