6/30/2005

SQL Saldirilarini Onleme Yollari


SQL enjeksiyon saldırıları olarak bilinen saldırı türü, SQL komutlarını kullanarak saldırganların aplikasyonunuzdaki input field'lara(Ör:kullanıcı adı ve parola girilen kısımlar) eklemeler yaparak SQL ifadelerinizde oynamalar yapılmasını ve veritabanınıza gönderdiğiniz veya veritabanından size geri gelen SQL ifadelerini değiştirilmesi şeklinde gelişir.

Genel olarak bir web programcısının bu tür saldırıları engelleyebilmek için ilk olarak aşşağıdaki yöntemleri uygulaması gerekir;

  • Dinamik sql ifadeleri kullanmak yerine parametreli sql ifadeleri yada stored procedure kullanmak.
  • İnput field'ler için(Ör:kullanıcı adı ve parola girilen kısımlar) girilebilen karakter sayısını mutlaka gerekli olan miktara limitleyin. (Maxlength attribute'ını kullanarak.)
  • Kullanıcı tarafından girilen karakterleri test edin ve uygun olmayan karakterlere izin vermeyin(Örneğin: ' ,- , vs). RegularExpressionValidator'ı kullanarak bunu uygulayabilirsiniz.
  • Sayfalarınızda oluşabilicek hata mesajlarında kullanıcıya mutlaka verebildiğiniz kadar az bilgi verilmesini sağlayın. ASP.NET?in jenerik bir hata sayfasını kullanabilirsiniz.

"SQL Injection Saldırıları" başlı başına bir konu olduğu için google da ayrıntılı bir arama yaparak konuyu ayrıntılı olarak incelemek, web aplikasyonlarınızı güvenli hale getirmenizde önemli bir adım olacaktır.