SQL Injection Nedir? Nasıl Önleriz?

  • Anasayfa
  • SQL Injection Nedir? Nasıl Önleriz?
image

SQL Injection Nedir? Nasıl Önleriz?

 

SQL INJECTION NEDİR? NASIL ÖNLERİZ?

 

SQL Injection (SQL Enjeksiyonu), veri tabanı olan uygulamalara saldırmak için kullanılan bir saldırı tekniğidir. Burada saldırgan SQL dili özelliklerinden faydalanarak uygulama ekranındaki ilgili alana yeni SQL ifadelerini ekler. (Örneğin saldırgan, veri tabanı içeriğini silebilir). SQL Injection, uygulamaların yazılımları içindeki bir güvenlik açığından faydalanır, örneğin, uygulamanın kullanıcı giriş bilgileri beklediği kısma SQL ifadeleri gömülür, eğer gelen verinin içeriği uygulama içerisinde filtrelenmiyorsa veya hatalı şekilde filtreleniyorsa, uygulamanın, içine gömülmüş olan kodla beraber hiçbir hata vermeden çalıştığı görülür. SQL Injection, çoğunlukla web siteleri için kullanılan bir saldırı türü olarak bilinse de SQL veri tabanına dayalı tüm uygulamalarda gerçeklenebilir.

 

SQL injection saldırıları, saldırganların, sistemdeki kullanıcılardan birinin bilgileriyle giriş yapmasına,  mevcut verilere müdahale etmesine, bazı işlemleri iptal etmesine veya değiştirmesine, veri tabanındaki tüm verileri ifşa etmesine, veri tabanındaki tüm verileri yok etmesine, veri tabanı sunucusunda sistem yöneticisi olmasına olanak sağlar.

 

SQL INJECTION TÜRLERİ NELERDİR? 

SIMPLE: Hacker rastgele veri veya komutları girmek için doğrulanmamış kullanıcı girdisini kullanır. 

BLIND: Tespit edilmesi en zor saldırılardan biridir. Bu saldırı türünde veri tabanında herhangi bir sorun göremezsiniz. Veriler yalnızca veri tabanına soru sorularak çıkarılır. 

UNION: Bir uygulama SQL saldırısına karşı savunmasız olduğunda ve sorgunun sonuçları uygulamanın yanıtları içerisinde döndürüldüğünde UNION kelimesi veri tabanından veri almak için kullanılabilir. Bu bir SQL Injection Union saldırısıyla gerçekleşir. 

ERROR: Hacker veri tabanına sonuçları hatalarla dönen kötü amaçlı sorgular göndererek saldırı gerçekleştirilir.

 

SQL INJECTION’I NASIL ÖNLERİZ? 

Programlama dilleri veritabanı sürücülerini kullanarak SQL veritabanları ile konuşur. Bir sürücü bir uygulamanın veritabanında SQL ifadeleri oluşturmasına ve çalıştırmasına verileri gerektiği gibi çıkarmasına ve değiştirmesine izin verir. Parametreli ifadeler SQL ifadelerine aktarılan parametrelerin güvenli bir şekilde ele alınmasını sağlar. Eğer uygunsa her zaman parametreli ifadeler kullanılmalıdır. Bunların yanında her zaman en kötü senaryoyu da ele alıp verilerinizin yedeklerini tutmanızda fayda vardır.