SQL Injec. Security Story |
Yanıt Yaz |
Yazar | |
megabros
Security Professional Kayıt Tarihi: 08-06-2009 Konum: Turkey Status: Aktif Değil Points: 752 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı megabros
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Gönderim Zamanı: 24-08-2009 Saat 00:40 |
SQL, Structured Query Language anlamına gelir.. Yani Yapisal Sorgu Dil’i diye nitelendiririz.. SQL injection’ın tanımına değinelim.. SQL injection; SQL sorgusu ve komut gönderme yöntemidir.. ASP tabanlı scriptlerdeki SQL Injection bug’larından korunmaktan bahsedeceğim.. Örneğin; ASP tabanlı bir websitemiz olduğunu düşünerek, haber.asp adlı dosyamızın olduğunu varsayalım.. Haber.asp sayfasının detayı için açılan haber_detay.asp?id=1 şeklinde bir gidişat olsun.. Eğer vereceğim kodu; haber_detay.asp dosyasına eklemezseniz, hackerlar tarafından ’ karakteri ile mssql SQL sorgulamalarla, bulunan haberlere rahatlıkla erişebilirler.. Daha önce haber_detay.asp de bulunan kod “ID = REQUEST.QUERYSTRING(”ID”)” şeklinde ise; ID = REQUEST.QUERYSTRING(”ID”) bu kodlarla değişebilirsiniz.. Ayrı bir metod olarak kullanmış olduğumuz formlardan ötürü ’ karakterini nasıl etkisiz hale getireceğimizden bahsedeceğim.. Örnek olarak form’ları kaydetmek için bulunan form.register.asp dosyasındaki REQUEST.FORM kısmını bir üstte anlattığım gibi güvenli hale getirmeniz gerekir.. Yani vereceğim fonksiyon kodlarını, dosyada en üste koymanız kafii.. Function KarakterTemizle(Veri) Bu fonksiyonu dosyaya yerleştirdikten sonra vereceğim örnekle yanlış ve doğru yolu ayırt edebileceksiniz.. Yanlış olan Hali: GelenVeri = REQUEST.FORM(”GelenVeri”) Doğru hali: GelenVeri = KarakterTemizle(Request.Form(”GelenVeri”)) Bir başka adımla da yine bu form’lara etki eden kötü karakterleri engelleyeceğiz.. Yine üst kısımda bahsettiğim örnekteki gibi form’ları kaydeden form.register.asp dosyası içinde bulunan REQUEST.FORM kodlarını, vereceğim function’ı sayfanın en üstüne bırakarak güvenlik altına almanız gerekmektedir.. Function KarakterTemizle(Veri) Bu fonksiyonu dosyaya yerleştirdikten sonra vereceğim örnekle yanlış ve doğru yolu ayırt edebileceksiniz.. Yanlış olan hali: GelenVeri = REQUEST.FORM(”GelenVeri”) Doğru hali: GelenVeri = KarakterTemizle(Request.Form(”GelenVeri”)) Son olarak belirteceğim durum; gördüğünüz gibi bahsettiğim function’lar birbirine çok yakın.. Her iki function’da da ayrı ayrı incelemeniz açısından ayrı olarak verdim ki amaç; hatayı minimuma indirmek.. Her ikisini de birleştirecek olursak doğru hali şu function’lar olur; Function KarakterTemizle(Veri) Son olarakta; GelenVeri = KarakterTemizle(Request.Form(”GelenVeri”)) haline gelir.. Saygılar..
|
|
Yanıt Yaz | |
Tweet |
Forum Atla | Forum İzinleri Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Açık Forumda Anketlerde Oy Kullanma |