SQL Injections Saldırılarından Korunma Yöntemleri

Yazının başlığından anladığınız gibi en bilindik saldırı yöntemlerinden Sql İnjections saldırısından korunma yöntemlerinden bahsedecem. Ama önce şunu belirteyim saldırılardan korunma yazıları bana hep saçma gelmiştir. Çünkü hacker hackleyecekse koruyamazsınız. Ya da şöyle düşünün mevcut vektörlerden korunduğunuzu varsayalım. Ya Zero-day ile saldırılırsa 😉  Neyse verilmek istenen mesajı anlamışsınızdır 🙂 Sırayla başlayalım 😉 

Karakter Filtreleme

Aslında Sql İnjections saldırılarından korunma yöntemleri arasında en temeli olandır. Sistemde hata verdirilebilecek karakterleri filtreleme yaparak korunma sağlayabiliriz. Bildiğiniz üzere çoğunlukla Sql İnjections saldırı metodlarında tek tırnak (‘) gibi karakterler kullanılıyor. Bu karakterlerin filtrelenmesi kısmen sistemimizde korunma sağlayacaktır. Filtreleme işlemi ile tek tırnağı çift tırnağa dönüştürerek korunmayı sağlayabiliriz. Aşağıda ki kod işimizi görecektir.

Kod üzerinde benzer şekilde değişiklikler yapabilirsiniz 🙂 

Kayıt Uzunluklarını Sınırlayın

Veritabanınıza kayıt için ayrılan alan uzunluğuna göre düzenleme yapmanız siteniz için daha iyi olacaktır. Örneğin Veri girişi yapılacak bir alana,en fazla 15 karakter girişi sağlanmışsa, fazlasına izin verilmemelidir. Bu sınırlamayı getirmeniz SQL saldırılarına Karşı önlem olacaktır.

Kayıt Türlerini Kontrol edin

Hazırladığınız bir forma girilen verilerin türlerini kontrol edin. Mesela ilgili forma sayı girilmesi gerekirken başka türde girdi sağlanabilir. Böyle bir kontrol sağlam için basit kodlar yazılarak sıkıntı çözülebilir.

Yetkileri Sınırlandırın

Mümkünse, veritabanına bağlanma işlemi yöneticisi yetkileriyle değil kısıtlı yetkiler ile bağlanılması sizin için avantaj olacaktır.

WhiteList Kullanın

Şöyle herkes blacklist ayarlanmasını tavsiye eder. Ama Saldırgan kombinasyonları değiştirerek ayarladığınız blacklist duvarını aşabilir. Ama mantıken whitelist ayarlarsanız yani kötü kodları engellemek yerine iyi olan kodların çalışmasını sağlarsanız Sql injection saldırılarına karşı önlem almış olursunuz 🙂

GreenSQL  Kullanın

GreenSQL, SQL Injection saldırılarına karşı veritabanını koruyan bir DB Firewall uygulamasıdır.  Açık kaynak kodlu ve GPL lisansı altındadır.  Proxy mantığı ile çalışır ve MySQL uyumluluğu vardır.

GreenSQL, istemci tarafından gönderilen SQL komutlarıyla MySQL arasında konumlandırılarak, gönderilen komutları analiz eder ve risk oluşturmayan komutları MySQL’e gönderir. Güvenli görünmeyen ve whitelist’e eklenmeyen komutları ise filtreleyerek veritabanına gönderilmesine engel olur. 

Benim okuduğum ve araştırdığım olarak şimdilik bunlar var. İlerleyen zamanlara göre bu yazı güncellenir. Eklemek istediğiniz bir bilgi olursa yazabilirsiniz 🙂 Başka yazıda görüşmek üzere 🙂 

Bunlara da bakmak isteyebilirsin ;)

1 Yorum

  1. Hocam bloğunu uzun zamandır takip ediyorum. Gerçekten güzel içerikler var. En azından ben birşeyler öğreniyorum. Bu yazı da gayet iyi olmuş. Klavyenize sağlık 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir