SQL injection nedir? Nasıl koruma sağlanır?
SQL injection nedir? Bu konuda SQL injection hakkında detaylı bilgi verip nasıl koruma yapılabileceğinden söz ediyor olacağız.
Günümüzde pek çok kişi web sitesi kuruyor ve bu site içerisine yeni özellikler ekleyip o siteyi geliştiriyor. Özellikle bu işe yeni başlayan yazılımcıların dikkat etmediği bir kısım var. Bu da güvenlik olmakta. Eğer bir yazılımcı bir özelliği doğrudan kodlayıp güvenlik kontrolü yapmazsa çeşitli sorunlar ile karşılaşabilir. Yalnızca web sitesinde değil bir uygulamada dahi güvenliğe önem göstermek gerekiyor. Günümüzde karşılaşılan en büyük problemlerden birisi de SQL injection olarak karşımıza çıkmakta.
SQL injection nedir?
SQL injection, oldukça popüler ve yaygın bir güvenlik açığı. Yıllardır var olan bu açık ile günümüzde büyük ve popüler yazılımlarda karşılaşmak kolay olmasa da yeni geliştirilen ve güvenliğe önem gösterilmeyen yazılımlarda bu açığa sıklıkla rastlanabilir. SQL injection, dikkat edilmesi gereken ve önem gösterilmesi gereken bir açık.
“SQL injection nedir?” sorusunun cevabına geçmeden önce biraz daha detaya girmek istiyoruz. Bu güvenlik açığından kısaca bilgi vermek gerekirse SQL injection, SQL kaynaklı bir güvenlik açığı oluşturuyor. Saldırgan eğer uygulamada SQL kullanılıyor ise SQL komutları deneyerek açık bulmaya çalışıyor. Örneğin internetten konuları çeken bir yazılım kodlandı diyelim. GET metodu ile sayfa numarası belirtiliyor. Eğer sayfa numarasında hiçbir güvenlik önlemi alınmadıysa buraya eklenen SQL komutları veritabanını değiştirmeyi hatta dosya sistemini güncellemeyi bile sağlayabilir.
SQL injection koruması nasıl yapılır?
“SQL injection nedir?” sorusunun yanı sıra bu açıktan nasıl koruma sağlanır bunu da öğrenmek gerekiyor. SQL injection açığından korunmak için yapılması gereken şey bunun nasıl oluştuğunu bilmek. Kısacası güvenlik sağlamak için hacker olmak gerekiyor. Bunun için yazılım kodladıktan sonra yazılım üzerinde güvenlik testleri yapmak, açıkları tespit etmek gerekir. SQL injection açıklarını tespit etmek için SQL injection yaparken kullanılan kodları girmek yeterli olacak.
Bu kadar çok çaba sarf etmek yerine bu sorunu kolay bir şekilde çözmenin yolu da bulunuyor. Kesme işareti, tırnak işareti ve bu gibi açık oluşturan özel karakterleri kaldırmak veya bu karakterleri HTML koduna dönüştürmek yeterli olabilir. Buna ek olarak sayı gereken yerlerde sayı kontrolü yapmak ve HTML taglarını engellemek gerekiyor.
Elinize sağlık 🙂