SQL Injection
SQL injection bir site “hack” metodudur.Mantığını anlamak için biraz sql biliyor olmak lazım tabi.Kabaca, veritabanına gönderilecek olan veri içerisine, sql’e iş yaptırabilecek bir komut gönderilince, komut içerisinde bizim istemediğimiz başka komut çalıştırılmış oluyor.
Örnekleyelim.
Mesela ziyaretçi defteri. Post değişkeni yazi olsun.
$yazi=$_POST[yazi];
mysql_query(“insert into defter(yazi) values(‘$yazi’)”);
Şimdi burada veriyi aldık, hiç kontrol etmeden veritabanına sorgulattık. Çok yanlış.
Örneğin kutucuğa yazılan yazı “bugün hava çok soğuk” olsun.
yani mysql sorgumuz şu hale dönüşmüş oluyor direk;
insert into defter(yazi) values(‘bugün hava çok soğuk’)
Burada bir sorun yok. Ama gelin ego tatmini amacıyla enerjisini saçma yerlere harcayan, kendini hacker sanan bir asosyal lise öğrencisi oraya başka şeyler yazmış olsun.
Ziyaretçi defterindeki kutucuğa “‘);TRUNCATE TABLE defter” yazsın. Yerine koyunuz, sorgumuz şu hale geldi;
insert into defter(yazi) values(”);TRUNCATE TABLE defter
Ne olmuş oldu? Deftere önce boş bir giriş yaptık ve sonrasında truncate (boşaltma) komutu çalıştı. Ve bütün defter silindi. Ne şeker değil mi?
Sonra da arkasından deftere bir mesaj daha yazıyoruz. “Hacked by ……..”
Ve böylece egomuzu tatmin ediyoruz, arkadaşlarımıza hava atıyoruz falan.