← Tüm Yazılar
Teknik,SQLi,Saldırı,Siber Güvenlik

SQL Injection (SQLi) Nedir? Saldırı Senaryosu & Koruma

2026-09-05 · 3 min okuma · REDCELL AR-GE
𝕏 Paylaş LinkedIn Paylaş 📧 E-posta Gönder

SQL Injection (SQLi) — web uygulaması kullanıcı girişini filtrelemeden SQL sorgusuna koyduğunda, saldırganın komut yürütebilir hale gelmesidir.

SQLi Nedir?

Uygulamanın SQL sorgusundaki input'u validate etmemesi, saldırganın sorgu mantığını değiştirmesine izin verir.

Örnek:

SELECT * FROM kullanicilar WHERE ad = '{input}'

Hacker ' OR '1'='1 girer:

SELECT * FROM kullanicilar WHERE ad = '' OR '1'='1'

Tüm kayıtları döner.

SQLi Türleri

Pratik Saldırı Örneği

Login formunda:

Username: admin' --
Password: herhangi

Sorgu:

SELECT * FROM users WHERE username='admin' --' AND password='herhangi'

Comment (--) password kısmını yok eder → admin'e login olur.

---

🔴 Risk Derecesi: Kritik (Critical)

Kötü Niyetli Hacker Ne Yapabilirdi?

Veri Hırsızlığı:
- Tüm müşteri verileri, şifre hash'leri elde eder
- Finansal bilgiler, sosyal güvenlik numaraları çeler
- Kişisel kimlik bilgileri satılır (dark web)

Veritabanı Kontrolü:
- Admin kullanıcı oluşturur (arka kapı)
- Verileri silme/değiştirme yapabilir
- Yasal belgeler sahteliğe uğrar

Sistem Kontrolü (RCE):
- MySQL INTO OUTFILE → shell dosyası yazma
- xp_cmdshell (MSSQL) → işletim sistemi komutları
- Sunucu tamamen ele geçirilir

Fidye Yazılımı:
- Veritabanını şifreler
- "500K$ ödeyin veya verilerinizi kamu ederim"
- Şirketi iş durmasına uğratır

Yasal + Finansal Sonuçlar - KVKK: 5-10M₺ ceza + hapis (veri ihlali) - İş Durması: Günlük kayıp X₺ - Müşteri Dava: Class action → şirket iflası - İtibar Kaybı: Müşteri terki 50%+

---

✅ Nasıl Savunulur

1. Parameterized Queries (Prepared Statements):

   # ❌ Yanlış:
   query = f"SELECT * FROM users WHERE id = {user_id}"

   # ✅ Doğru:
   query = "SELECT * FROM users WHERE id = %s"
   cursor.execute(query, (user_id,))
   

2. Input Validation:
- Beklenmeyen karakterleri reddet
- Whitelist kontrol (sadece beklenen formatı kabul et)

3. Least Privilege:
- Database user'ı minimal permission verdir
- Read-only database user (reporting) ayrı

4. WAF + Rate Limiting:
- ' OR pattern'lerini tespit et ve engelle
- Ş

üpheli sorguları logla

5. Periyodik Pentest:
- Yazılımd üzenli SQLi test yaptır
- OWASP Top 10 audit'i

---

Sonuç

SQLi, uygulamaların en tehlikeli zafiyetlerinden biri. Bir hata, tüm veriyi ele verir. Başlıca savunma: Prepared Statements + Input Validation.

🛡️ Sisteminizin güvenliğinden emin misiniz?

Ücretsiz Ön Değerlendirme →

Yazıdaki zafiyetlerden etkileniyor olabilirsiniz. REDCELL uzmanları 30 dakikada siber risk analizi yapar.

📚 Benzer Yazılar