SQL Injection Nedir?
İngilizce: SQL Injection
SQL injection, doğrulanmamış girdilerin SQL sorgusuna karışmasıyla veri sızıntısı, yetki aşımı veya kayıt silme riski doğurur.
SQL Injection Nedir?
SQL Injection, kullanıcıdan gelen verinin güvenli biçimde ayrıştırılmadan SQL sorgusunun parçası haline gelmesiyle oluşan web güvenlik açığıdır. Giriş formu, arama kutusu, filtre parametresi veya API alanı üzerinden veritabanına beklenmeyen komutlar taşınabilir.
Bu açık; müşteri kayıtlarının okunmasına, yetkisiz oturum açılmasına, sipariş bilgilerinin değiştirilmesine veya tabloların silinmesine kadar uzanabilir. Risk yalnızca teknik değildir; veri ihlali, KVKK/GDPR yükümlülüğü ve itibar kaybı doğurabilir.
Nasıl Ortaya Çıkar?
- Dinamik SQL sorgularının string birleştirme ile kurulması
- Parametreli sorgu veya prepared statement kullanılmaması
- ORM kullanımında ham sorguların kontrolsüz bırakılması
- Veritabanı kullanıcısına gereğinden geniş yetki verilmesi
- Hata mesajlarının tablo ve kolon adlarını dışarı sızdırması
Korunma Yöntemleri
SQL injection’a karşı temel savunma, kullanıcı girdisini SQL kodundan kesin biçimde ayırmaktır. Parametreli sorgular, prepared statement, güvenli ORM kullanımı ve en az yetki prensibi birlikte uygulanmalıdır. Girdi doğrulama faydalıdır ancak tek başına yeterli değildir; WAF da hatalı sorgu tasarımının yerine geçmez.
Düzenli güvenlik testleri, kod incelemesi ve log izleme saldırı denemelerini erken yakalamaya yardımcı olur. OWASP listelerinde SQL injection uzun süredir kritik web riskleri arasında yer alır. Benzer şekilde istemci tarafını hedefleyen XSS açıkları da ayrı önlemler gerektirir.
Barlas Dijital’de bu konu genellikle güvenlik denetimi ve API kod incelemesi kapsamında kontrol edilir.