Web Uygulamalarında SQL Sorgularının Değiştirilebilmesi
Açıklama:
Web uygulamalarında bazı bilgilerin tutulabilmesi için SQL veritabanları kullanılmaktadır. Uygulama geliştiricileri bazı durumlarda kullanıcılardan gelen verileri beklenen veri türü ile karşılaştırma***** SQL sorguları içinde kullanmaktadırlar. Genel olarak problemler uygulama geliştiricinin SQL sorgularında anlam ifade edebilecek ; UNION gibi kötü niyetli karakterlere karşı bir önlem almadığı zaman ortaya çıkmaktadır. Bu durum kullanıcıya önceden planlanmamış uygulama düzeyinde erişim sağlayabilir. İçinde SQL sorgulama barındıran bir çok ürün SQL sorguları değiştirilebilmesine (SQL Injection) karşı savunmasızdır. Saldırganlar SQL sorgularını değiştirme tekniklerini web sitelerine ve uygulamalara zarar vermek amaçlı kullanmaktadırlar. SQL enjeksiyon ile saldırgan tablo yaratabilir değişiklikler yapabilir veritabanı üzerinde erişim sağlayabilir veya veritabanı kullanıcısının hakları doğrultusunda sunucuda komut çalıştırabilir.
Çözüm Önerileri:
Uygulamanın tüm bileşenlerinde kullanılan değişkenler için kontroller oluşturulmalı ve değişkene atanması beklenen veri türü ile kullanıcı girdisi karşılaştırılmalıdır. Beklenen girdi türünden farklı karakterler saptanması durumunda karakterler SQL sorgularında anlam ifade etmeyecek biçimde değiştirilmeli silinmeli veya kullanıcıya uyarı mesajı döndürülmelidir. Tercihen uygulamanın tamamı için geçerli olacak değişken türü ve atanabilecek girdi türünü parametre olarak alan ve kontrolleri yaptıktan sonra girdi kabul sonucu üreten sabit bir fonksiyon tercih edilmelidir.
__________________
ÖzeL İsimLeri ßüyük HarfLe ßaşLayara k Yazıorum
Yani {ADINI} Yani {SEVDANI} Dahası {ßİZİ}
Parantez İçinde (YaşadIkLarImIz) VaR
Aman Kimse DuymasIn (!)
Tırnak İçine AldIm"ßendeki Yeri"ni
Kem GözLerin NazarI DokunmasIn.!
|