Tekil Mesaj gösterimi
  #2 (permalink)   iTrader 
Alt 2008-03-23, 21:41
Mp3Powers.Com - ait Kullanıcı Resmi (Avatar)
Mp3Powers.Com Mp3Powers.Com isimli üyemiz çevrimdışıdır. (Offline)
Member
 
Üyelik tarihi: Apr 2005
Mesajlar: 129
Tecrübe Puanı: 3
iTrader: %0/0
Mp3Powers.Com is on a distinguished road
Standart

KategoriId değerinin dışarıdan querystring ile alındığını varsayalım, doğal olarak adres satırından herhangi bir kullanıcı bu değerin yerine sql sorgunu etkileyebilecek zararlı sözcükleri girebilir ( --, ', drop) gibi.Yapman gereken dışarıdan müdahele edilebilecek ve senin sql sorgunda kullandığın değerleri kontrol ettirmen.

Mesala en basitinden kategoriID sütunun sayısal olduğu için numerik bir değerle karşılaştırma yapıyorsun. Sorgunda bulunan 4 değerinin numerik olup olmadığını kontrol ettirerek işlem yaptırabilirsin.String değerlerde ise database indeki verileri herhangi bir masaüstü yazılımda kullanmayacağını varsayarak söylüyorum, zararlı kodları html karşılıklarına çevirebilirsin.Aşağıdaki örnek ASP fonksiyonu bu işi yapıyor.

Kod:
Function SqlKoruma(strWords)
strBadWords = Array("SELECT", "DROP", "--", "INSERT", "DELETE", "xp_", "UNION", "UPDATE", "'", "’", "<%", "<SCRIPT>", "<META", "<", ">")
strBadWordsReplace = Array("SELECT", "DROP", "--", "INSERT", "DELETE", "xP_", "UNION", "UPDATE", "'", "'", "", "", "", "[", "]")
For iSQL = 0 to uBound(strBadWords)
strWords = Replace(strWords, strBadWords(iSQL), strBadWordsReplace(iSQL),1,-1,1)
Next
SqlKoruma = strWords
End Function
Kolay gelsin
__________________
just coder
Alıntı ile Cevapla