SQL enjeksiyonu
Kısaca: SQL enjeksiyonunda saldırgan, uygulama girdiyi denetlemeden sorguya kattığı için giriş alanına kendi veritabanı komutlarını sokar.
Biraz daha ayrıntılı: Sorguyu metin olarak birleştiren bir giriş (... WHERE name = ' + girdi + '), ' OR '1'='1 girdisiyle kandırılabilir. Sonuç, oturum açmayı aşmaktan tüm veritabanını okumaya veya silmeye kadar uzanır.
Ayrıntılı
- Korunma: Parametreli sorgular (prepared statements). Girdiler komuttan ayrı iletilir ve asla kod olarak okunmaz.
- ORM: Modern çerçeveler, ham metin birleştirmediğiniz sürece varsayılan olarak parametre kullanır.
- Diğer önlemler: En az veritabanı yetkisi, girdiyi doğrulama, hata mesajlarını göstermeme.
- Test: Güvenlik tarayıcıları ve kod incelemesi.
Ayrıca bakınız: OWASP Top 10, XSS (siteler arası betik çalıştırma)