Sql injection dan korunmanın alkanca yolu

21. Haziran 2009

Tüm lamerler ilk sql injection açıklarını denerler. Gözden ufak bi kodcuk kaçırmamız başımızı yakabilir bence korunmanın en kolay yolu aşşagıda verecegim kod.

 

    public static string CheckInput(string parameter)
    {
        for (int i = 0; i < blackList.Length; i++)
        {

            if ((parameter.IndexOf(blackList[i], StringComparison.OrdinalIgnoreCase) >= 0))
            {
                parameter = parameter.Replace(blackList[i], replaceList[i]);
                return parameter;
            }
        }
        return parameter;
    }

    public static string[] blackList = {"--",";--","/*","*/","@@",
                                           "char","nchar","varchar","nvarchar",
                                           "alter","begin","cast","create","cursor",
                                           "declare","delete","drop", "exec","execute",
                                           "select", "sys","sysobjects","syscolumns",
                                           "fetch","insert","kill","open",
                                           "table","update"};
    public static string[] replaceList = { " ", " ", " ", " ", " ", "ch&#97;r", "nch&#97;r", "varch&#97;r",
                                           "nvarch&#97;r", "ch&#97;rlter", "begi&#101;", "c&#97;st",
                                           "cre&#97;te", "curso&#114;", "decl&#97;re", "delet&#101;",
                                           "dro&#112;", "exe&#99;", "execut&#101;", "sel&#101;ct",
                                           "sy&#115;", "sysonject&#115;", "syscolumn&#115;",
                                           "fetc&#104;", "inser&#116;", "kil&#108;", "ope&#110;",
                                           "t&#97;ble", "upd&#97;te"};
}

Sakıncalı kelimeleri html karşılıklarına çevirip db ye kaydediyor böylece veri kaybı yaşanmayıp güvenlik sağlanıyor. Dezavantajı ise db de tanımladıgınız varchar alanları biraz yüksek tutmanız gerekecek...

9 kişi tarafından 4.0 olarak değerlendirildi

  • Currently 4,000001/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Security

Yorumlar

Yorum ekle


(Gravatar simgesini gösterecek)  

  Country flag

biuquote
  • Yorum
  • Canlı önizleme
Loading