SQL Enjeksiyon Saldırılarına Karşı PHP'de Alınacak Önlemler
SQL Enjeksiyon Nedir?
SQL enjeksiyon, saldırganların uygulamanızdaki veritabanı sorgularına müdahale etmesine olanak tanıyan bir güvenlik açığıdır. PHP'de bu saldırılara karşı alınması gereken önlemleri detaylı olarak inceleyelim.
1. Prepared Statements Kullanın (En Önemlisi)
Kesinlikle kaçınılması gereken:
$db->query("SELECT * FROM users WHERE id = ". $_GET['id']);
Doğru kullanım:
$stmt = $db->prepare("SELECT * FROM users WHERE id =? ");
$stmt->execute([(int)$_GET['id']]);
2. Girdi Doğrulama
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
$yas = filter_input(INPUT_POST, 'yas', FILTER_VALIDATE_INT, ['options' => ['min_range' => 0]]);
3. Dinamik Tablo İsimleri
Dinamik tablo veya sütun isimleri kullanmanız gerekiyorsa, bir beyaz liste (whitelist) kullanın:
$izinliSutunlar = ['isim', 'email', 'tarih'];
$sutun = $_GET['sirala']? ? 'tarih';
if (! in_array($sutun, $izinliSutunlar, true)) {
$sutun = 'tarih';
}
Güvenlik önlemleri konusunda eksikleriniz varsa bu yöntemleri hemen uygulamaya başlayın. Sorularınız varsa yorum bırakın.
- SQL Enjeksiyon Saldırılarına Karşı PHP' de Alınacak Önlemler konusunun temelleri
- Pratik ipuçları ve dikkat edilmesi gerekenler
- 2026 güncel öneriler
Sıkça Sorulan Sorular
Bu yöntem yeni başlayanlar için uygun mu?
Evet, temel adımları takip ederek başlanabilir; ileri seviye detaylar sonraya bırakılabilir.
Ne kadar sürede sonuç alınır?
Doğru kurulumla ilk sonuçlar genellikle birkaç saat içinde görülür.
Mobil cihazlarda da geçerli mi?
Çoğu modern çözüm mobil uyumludur; yine de cihaz bazlı test önerilir.
Kısa notlar tutmak, aynı hatayı tekrar yaşamamanızı sağlar.
Kategori: Tanışma Alanı · Güncelleme: 2026
Ben de benzer bir projede bu yöntemi kullanmıştım. Gerçekten işe yarayan bir yaklaşım. Paylaşım için teşekkürler.