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