SQL İnjection Nedir?
SQL ( Structured Query Language ) veritabanı üzerinden data çekme, silme, düzenleme gibi işlevlere sahip olan basit bir dil olarak bilinir. Web uygulamaları konusunda neyle karşılaşırsanız karşılaşın mutlaka SQL veritabanı kullanılmaktadır. Mesela herhangi bir uygulamaya mesaj bıraktığınız zaman o mesaj veritabanı üzerinde bekletilir. Yönetici onay verdikten sonra yayınlanır. Ya da yönetici mesaja onay vermediği zaman silinir ya da bekletilir. Arka planda bu süreci yapan ise SQL olmaktadır.
Web uygulamaları açısından konuyu ele aldığımız zaman SQL İnjection çok ciddi bir açık olarak karşımıza gelmektedir. Son zamanlarda veri tabanlarının güvenlik konusunda geliştirilmiş olsa da SQL İnjection her an ciddi sorunlar yaratacak şekilde karşımıza çıkıyor. Özellikle Framework ve ORM tabanlı MSQL’ler de ne kadar geliştirici bulunsa da risk her zaman bulunmaktadır.
SQL İnjection çok geniş kapsamlı bir özel yazılım olduğu için bazı yazılımcılar tarafından tam olarak öğrenemediklerinden dolayı bazı açıklar bırakmaktadırlar. Bu açıklar ise önemli bir hata olarak kabul edilir. Büyük firmaların kullandıkları web uygulamalarında mutlaka SQL İnjection kullanılmaktadır. Ancak kullanımlarında basit metotlar olarak bilinen bazı özelliklerin çok büyük bir açık olarak karşılarına çıkmaları demek o firmanın itibarının büyük ölçüde kaybolması demektir. Bir firma kendisine özel olarak kullanabileceği bir özel yazılıma ihtiyaç duyduğu gibi SQL İnjection hazır web uygulamalarında da kullanılmaktadır. Hazır ya da özel olarak hazırlanması hiç önemli değildir. Her an en ufak bir açık büyük sorunlar çıkarır. Örneğin; Bir bankanın mobil uygulamasını göz önünde bulundurursak eğer bir açığın nelere malum olacağını kabaca gözümüzün önünden geçirebiliriz.
Özel yazılım geliştirme adı altında gerçekleştirilen bazı web uygulamalarının güvenlik kapsamında çok ciddi olarak ele alınması gerekmektedir. Hatta tek yazılımcı ile çalışan firmaların bu açıklara direkt olarak maruz kalarak ileride açıklardan doğabilecek hacklenme gibi durumlarla karşılaşmaları an meselesidir. Her ne kadar Framework katmanının aşılması gerekse de unutulmaması gereken bir şey ise kesinlikle Framework uygulamasının da SQL İnjection tarafında bir açık oluşabilir. Özel yazılım genellikle birkaç kişi ile birlikte takım halinde ortaya çıkarılması gereken bir husustur.
Özel yazılım açıkları genellikle yazılımı oluşturan yazılımcı tarafından ‘’ kendi yaptığım programı ben bile hackleyemem ‘’ gibi sözcüklerle süslemektedirler. Ancak SQL İnjection veritabanından bağımsız olarak da farklı alanlarda kullanılabilmektedir. Yani siz ne kadar veritabanını özel yazılım açıkları adı altında önlemlere tabii tutsanız da farklı bir yerde kullanacağınız için yine bir risk oluşturmaktadır. Aynı zamanda dilden bağımsız olarak da kullanıldığı gözlemlenmiştir