SQL injection nedir, nasıl önlem alınır?
|
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.
Ş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;
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. (evet aynen öyle Ziyaretçi defterindeki kutucuğa “‘);TRUNCATE TABLE defter” yazsın. Yerine koyunuz, sorgumuz şu hale geldi;
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 bülent ersoy.” Ve böylece egomuzu tatmin ediyoruz, arkadaşlarımıza hava atıyoruz falan. Peki nasıl önlem alalım?(Aslında bu gösterdiğim örnekteki gibi basit değil tabi bu iş Veriyi kullanıcıdan alınca php’nin mysql_real_escape_string fonksiyonuna sokuyoruz. Bu fonksiyon gelen veride mysql’e iş yaptırma olasılığı olan simgelerin önüne veri olarak gösterecek olan \ koyuyor. \x00, \n, \r, \, ‘, “ ve \x1a. Bu şekilde kişinin yazdığı yazı doğrudan yazı olarak veritabanına eklenmiş oluyor. Yani yukarı yazdığımız kodun güvenli olanı şu;
Oldu. İyi php,mysqller dilerim. Güvenli kalın. Haftaya aynı gün aynı saatte yeni bir programda görüşmek üzere. |
English Articles
Emrah Üstün
30 Ocak, 2008 saat 21:03
Güzel anlatmışsın. Veri tabanı bilmem ama yapılan düzenbazlığı anladım. Bariz SQL hatası var.
4 Şubat, 2008 saat 23:57
On Bağlantı #15…
Önceki haftayı atladığımın, önceki hafta on bağlantı yayınlamadığımın farkındayım, özür diliyorum.
Bağlantı #151: Da Vinci’den (İsmini ver be adam!) şahane bir tespit. Kronik hazımsızlık ile ilgili. Bir de Recep Tayyip Erdoğ…
6 Şubat, 2008 saat 13:03
Gerçekten güzel bir çalışma tebrik ederim.
geliştirmen dileği ile…