SQL Injection Nedir?
SQL Injection (SQLi), web uygulamalarında en yaygın ve tehlikeli güvenlik açıklarından biridir. Saldırganlar, SQL sorgularına kötü amaçlı kod enjekte ederek veritabanına yetkisiz erişim sağlayabilir, veri çalabilir veya silebilirler.
// Güvensiz kod örneği
$username = $_POST["username"];
$password = $_POST["password"];
$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = mysqli_query($connection, $query);
SQL Injection Türleri
1. In-Band SQL Injection
En yaygın ve kolay tespit edilebilen türdür. Saldırgan, aynı iletişim kanalını kullanarak hem saldırıyı gerçekleştirir hem de sonuçları alır.
2. Blind SQL Injection
Veritabanından doğrudan veri alınamadığında kullanılır. Saldırgan, uygulamanın davranışını gözlemleyerek bilgi edinir.
3. Out-of-Band SQL Injection
Veritabanı sunucusunun dış kaynaklara HTTP veya DNS istekleri göndermesi sağlanarak veri çalınır.
Korunma Yöntemleri
Prepared Statements Kullanımı
En etkili korunma yöntemi, parametreli sorgular (prepared statements) kullanmaktır:
// Güvenli kod örneği
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$stmt->execute([$username, $password]);
$user = $stmt->fetch();
Input Validation
Kullanıcı girdilerini her zaman doğrulayın ve sanitize edin. Whitelist yaklaşımı kullanın.
Least Privilege Prensibi
Veritabanı kullanıcılarına sadece ihtiyaç duydukları minimum yetkileri verin.
WAF Kullanımı
Web Application Firewall (WAF) kullanarak SQL injection girişimlerini tespit edip engelleyin.
Test Araçları
- SQLMap: Otomatik SQL injection testi için en popüler araç
- Burp Suite: Manuel testler için güçlü bir platform
- OWASP ZAP: Açık kaynaklı güvenlik test aracı
Sonuç
SQL Injection saldırıları ciddi güvenlik riskleri oluşturur. Geliştiriciler olarak, güvenli kodlama pratiklerini uygulamalı, düzenli güvenlik testleri yapmalı ve güvenlik güncellemelerini takip etmeliyiz.
Unutmayın: Güvenlik bir ürün değil, bir süreçtir. Sürekli öğrenmeli ve güncellemelisiniz.
[ ETIKETLER ]
Cyber Warrior
Siber güvenlik uzmanı ve penetrasyon testi profesyoneli. 10+ yıllık deneyimle web uygulama güvenliği, network security ve ethical hacking alanlarında çalışmalar yapıyor.