ABD Münbiçi bırakır mı ?

ABD, Münbiçin yarısı sizde yarısı bizde kalsın dedi

SON 20 YILDA OSCAR KAZANAN KADINLAR

Son 20 yılda En İyi Kadın Oyuncu kategorisinde Oscar kazanan oyuncuların listesi...

AFRİN HAREKATI

Zeytin Dalı Harekatında teröristlerden temizlenen bölge artıyor

Silkroad XIAN

Silkroad sevdalıları için bir server

  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Sql injection nedir?

 
#1

Asp.net Sql injection zaafiyeti ve alınacak önlemler

Merhaba arkadaşlar, bu yazımda

sql injection zaafiyeti
nden bahsediyor olacağım. Web uygulamalarının olmazsa olmazı veri tabanlarıdır. Veri tabanı ile uygulamayı sql cümlecikleri ile konuştururuz. Bu konuşturma sırasında oluşabilecek 
zaafiyetlerden birisi sql injection zaafiyetidir. 


Sql injection, kullanıcının program içindeki sql sorgu cümleciğine müdahale edilebilmesidir aslında. Kullanıcı sql cümleciğine müdahale ederek yetkisi olmayan verilere erişebilir. Bu da kullanıcı bilgilerinden tutun gizli bilgilerin dışarıya açık hale gelmesi demektir.

Uygulamalarda bilgi gizliliği ve yetkilendirmeyi yok eden sql injection'ı önlemek için sql ile uygulamanın konuşturulması sırasında dikkat edilmelidir. Bunun için stored procedure kullanılabilir. Bu bir önlemdir ancak stored procedure kullanılmasına rağmen halen sql injection açığı bulunma ihtimali vardır. Bu nedenle sql sorgularının parametre ile verilip türü beliritilmesi açığı bi nebze de önleyebilecek yöntemlerdendir. Bir dedışarıdan gelen parametrelerdeki '" ve = karakterleri sorgudan önce ezilmelidir. Bu açıklamamı aşağıda örnek kod satırları ile açıklayacağım.

Aşağıda sorgu gerçekleşmeden gerekli karakterlerin ezme işlevi yapan fonksiyonu kullanabilirsiniz.


public string security(string data)
   {
       if (data != null)
       {
           if (data.Contains("&"))
               data = data.Replace("&", "&");
           if (data.Contains("&"))
               data = data.Replace("&", "&");

           if (data.Contains("<"))
               data = data.Replace("<", "<");
           if (data.Contains("<"))
               data = data.Replace("&", "&");

           if (data.Contains(">"))
               data = data.Replace(">", ">");
           if (data == ">")
               data = data.Replace("<", "<");

           if (data.Contains("'"))
               data = data.Replace("'", "'");
           if (data.Contains("'"))
               data = data.Replace("'", "'");
           if (data == "'")
               data = data.Replace("'", "'");

           if (data.Contains("\""))
               data = data.Replace("\"", """);
           if (data.Contains("""))
               data = data.Replace(""", """);

           if (data.Contains("="))
               data = data.Replace("=", "");

       }
       return data;
   }



Aşağıdaki kod satırları da örnek select sorgu satırlarıdır. 


using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.
ConnectionStrings["DefaultConnection"].ConnectionString))
           {
                 deger = security(deger);
                query = "SELECT * from TABLO_ADI where ID=@ID";
                   using (SqlCommand cmd = new SqlCommand(query, conn))
                   {
                       cmd.Parameters.Add("@ID", SqlDbType.Varchar).value = deger;
                       conn.Open();
                       using (SqlDataReader row = cmd.ExecuteReader())
                       {
                           while (row.Read())
                           {


                            }
                       }
                    }
                   conn.close();
            }



Güvenli uygulamalar!



Ara
Cevapla


[-]
Hızlı Cevap

İnsan Doğrulama:
Aşağıda görünen onay kutusunu işaretleyiniz. Bu işlem otomatik spam kayıtları önlemek için kullanılır.

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Mimetype nedir? tuğrul 0 1,228 09-05-2017, Saat: 11:39
Son Yorum: tuğrul

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


Konuyu Okuyanlar:
1 Ziyaretçi

   
Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2018 MyBB Group.  



Merih Forum® bilgi paylaşım platformu. 2015-2018 Tüm hakları saklıdır.