SQL Injection Nedir?
Teknolojinin ilerlemesi ile birlikte günümüzde pek çok farklı özel ya da devlet kurumu internet sitesi bulundurmaktadır. Kurumsal bir kimliğe sahip olmanın en önemli gerekliliklerinden bir tanesi de web sayfası bulundurmaktır. Web siteleri ve uygulamaları dinamik bir işlemler yapabilmeleri için veri tabanı kullanılır. Verilerin belirli bir düzene göre depolandıkları sistemlere veri tabanı denilmektedir. Günümüzde pek çok farklı kurum ve kuruluş web sayfalarında veri tabanı bulundurmaktadırlar. Tabi ki veri tabanı işin içine girdiği zaman SQL sorguları da işe dâhil oluyor.
SQL sorguları veri tabanı ile iletişim ve işlemler yapmak için kullanılır. İşte bu kısımda SQL Injection işin içine dâhil oluyor. Kötü niyetli kişiler (Hackerlar) bizim sitemizde kullandığımız bir SQL sorguna müdahale ediyorlar. Genellikle sitelerin veri işlemleri yapılan sayfalarda kullanıcılardan alınan verilere SQL sorgusu girilerek veri tabanına hasar veya erişme için yapılan bir saldırı türü.
Bir sitenin SQL Injection saldırısına uğraması kesinlikle sunucu veya sunucu şirketlerinin hatası değildir. Bu geliştiricilerin hatası ya da fark edemediği açıklar nedeniyle oluşur.
Hackerler SQL açıklarını önceden tek tek deneme yöntemleri ile buluyorlardı. Artık bunun içinde kendi yazılımları sayesinde sitedeki açıkları bulmaları daha kolay bir yol alıyor. Onlara kalan ise sadece veri tabanınız ile ne yapmak istedikleri.
SQL Injection Nasıl Önlenir?
SQL Injection’dan korunmak için kullanıcılardan alınan verileri hep zaman için dönüştürme yapmak. Daha açmak gerekirse kullanıcıdan alacağımız verilerde kullanıcı simge (‘,”,; vb.) karakterleri veya kod (Örneğin bir SQL kodu) yazabilir. Bu veriler direk olarak bizim sorgumuza dahil olursa artık bizim sorgumuzun yanında veri ile gelen sorguda çalışacaktır. Bir tür saldırıya maruz kalmış durumunda olacağız.
İşte bu yüzden alacağımız verileri her zaman koda dönüştürmemiz lazım. Bunu için kullandığınız kodlama dili ile ilgili gerekli fonksiyonu kullanabilirsiniz.
Bir başka yol ise “Framework” kullanmak. Kodlama yaparken kendi alt yapınızda bu tür açıklara yol vermemek için frameworkleri tercih etmenizde fayda var.