Birkaç gün önce yazdığım uygulamalardan birinin kod arka planında "Sql Injection" adı verilen sızmaya karşı açık bırakmış olduğumu anladım. Yaptığım denemeler sonucu Stored Procedure kullanmak dahi %% arasına yazdığım karakterin sql injection açığını meydana getirmesine engel olamıyordu. Çareyi şöyle ufak bir süzgeç hazırlayıp, sadece belli karakter ve sayı aralıklarına izin vermekte buldum.

using System.Text.RegularExpressions;
public class SqlInjection
{  
public static bool InjectionWhiteList(string s)  
{   
Regex rx = new Regex(@"^[A-Za-z1-9\sğüşıöçĞÜŞİÖÇ]+$");   
return rx.IsMatch(s);  
}
}

Her ne kadar eski klasik ASP günlerini hatırlatsa da, dinamik arama sorgusu oluştururken bunu engellemenin daha pratik bir yolunu bulamadığım için, bunu kullanmaya devam edeceğim bir süre.