Genel

SQL Injection Nedir?

SQL Injection Nedir?

SQL Injection, web uygulamalarında kullanıcıdan alınan verilerin kontrol edilmeden veritabanı sorgularına eklenmesi sonucu oluşan ciddi bir güvenlik açığıdır. Bu açık sayesinde saldırganlar veritabanına yetkisiz komutlar göndererek veri okuyabilir, değiştirebilir veya silebilir.


Basit Bir Örnek

Bir giriş ekranında çalışan sorgu şöyle olsun:

SELECT * FROM users WHERE username='admin' AND password='sifre';

Saldırgan şifre alanına şunu yazarsa:

' OR '1'='1

Sorgu şu hale gelir:

SELECT * FROM users WHERE username='admin' AND password='' OR '1'='1';

'1'='1' her zaman doğru olduğu için sistem kullanıcıyı şifresiz giriş yapmış gibi kabul edebilir.

Kısaca Nasıl Korunulur?


Form verileri mutlaka doğrulanmalıdır

Kullanıcı girdileri doğrudan sorguya eklenmemelidir

Prepared Statement (hazır sorgu) kullanılmalıdır