SQL Injection Nedir?
SQL Injection, veri tabanına dayalı çoğunlukla web uygulamalarının SQL sorgusuna müdahale edilerek verilere yetkisiz erişimi hedefleyen dijital korsanlık yöntemlerinden biridir. Başarılı bir SQL injection saldırısıyla kötü niyetli bir programcı tüm kullanıcıların verilerine erişebilir, bunları değiştirebilir ve silebilir.
Özellikle web sitelerinde herkese açık olarak bulunan giriş, iletişim gibi formlar arka planda bir veri tabanıyla bilgi alışverişi halindedir ve bu iletişim SQL komutlarıyla sağlanır. Bu komutlarla veri tabanına veri eklenir, güncellenir ve silinir. Kodlanırken saldırı önlemleri alınmamış ya da eksik alınmış formlar aracılığıyla saldırgan bu SQL komutlarını değiştirerek veya ekleme yaparak veri tabanı üzerinde zararlı sorgular çalıştırabilir.
SQL Injection Türleri Nelerdir?
In-Band SQL Injection
Saldırganın saldırıyı başlattığı ve sonuçları topladığı iletişim kanalının aynı olduğu injection türüdür. Basit ve verimli bir yol olduğu için yaygın olarak kullanılır.
Out of Band SQL Injection
Saldırgan saldırıyı başlatmak ve sonuçları toplamak için aynı kanalı kullanamadığında gerçekleşen in-band’e göre daha az yaygın olan bir injection türüdür. Out of Band saldırısı için veri tabanı sunucusunun DNS veya HTTP istekleri yapabilmesi gerekir.
Inferential SQL Injection
Bu saldırıda web uygulaması verileri doğrudan aktarmaz. Bunun yerine saldırgan sorgular gönderir ve web uygulamasının yanıtını, veri tabanı sunucusunun davranışını ve web sayfasındaki farklılıkları gözlemleyerek bilgi toplar.
SQL Injection Nasıl Önlenebilir?
Sql Injection saldırılarını önlemek için yapılabilecek bir dizi önlem vardır. Bunlardan bazıları kullanıcı doğrulaması ve filtrelemesi, parametreli SQL kodları, saklı prosedürler, Web Uygulaması Güvenlik Duvarları(WAF) ve güncellenmiş web teknolojileri kullanmaktır.