SQL Enjeksiyon Saldırılarına Karşı PHP'de Alınacak Önlemler
22
meliharslanoglu4535 Efsane
209 görüntülenme · 22 yorum

SQL Enjeksiyon Saldırılarına Karşı PHP'de Alınacak Önlemler

(21 oy, 3.9/5)

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.

Bu yazıda ne öğreneceksiniz?
  • 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

İlgili Konular

  • 2026 Yılında Tanışma Alanı ve Sosyal Medyada Takipçi Kasma Rehberi: Profesyonel Stratejiler
  • SQL Enjeksiyon Saldırılarına Karşı PHP'de Alınacak Önlemler Hakkında Tartışmalar ve Yorumlar

    kemalyuksel2349 1 yorum
    17.07.2026 15:31 (düzenlendi)
    Hazırlanmış ifadeler (prepared statements) konusundaki örnek çok net olmuş, özellikle `$db->prepare("SELECT * FROM users WHERE id =? ")` ile direkt string birleştirme arasındaki farkı görme imkanı sağlıyor. Girdi doğrulama kısmının da devamını heyecanla bekliyorum, çünkü prepared statements tek başına yetmiyor maalesef. Bu tür makaleler PHP geliştiricilerinin gerçekten işine yarıyor, emeğine sağlık.
    tugbabektas7009 1 yorum
    17.07.2026 16:29 (düzenlendi)
    Hazırladığın sorgu örneğinde `(int)$_GET['id']` dönüşümü yapılmış, peki bu her zaman yeterli oluyor mesela string olarak beklenen bir parametrede ne yapıyoruz? Prepared statements ile birlikte girdi doğrulamayı da mutlaka uygulamamız mı gerekiyor, yoksa prepared statements tek başına koruma sağlıyor mu?
    +1 puan
    1 2

    İlgili Konular