THT DUYURU

Web & Server Güvenliği Doğru web ve veritabanı sunucusu güvenliği sağlanmadan, bilgisayar korsanları hassas verilerinize erişebilir. Web, Sunucu ve veritabanı güvenliğini nasıl sağlayacağınızı buradan öğrenebilirsiniz.

chat
Seçenekler

SQL Güvenlik

Rolls - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2017
Nereden:
Tekirdağ
Mesajlar:
400
Konular:
31
Teşekkür (Etti):
345
Teşekkür (Aldı):
109
Ticaret:
(0) %
24-04-2017 23:06
#1
SQL Güvenlik
Selamun Aleyküm
THT Ailesi

-------------



Bugün ki konumuz SQL GÜVENLİK hakkında bilgi vereceğim.

ASP kodlarında en çok tehlikeye neden olan ve SQL INJECTION olarak tabir edilen güvenlik sorununu aşağıda vermiş olduğumuz örnek kod yardımıyla çok basit bir şekilde çözebilirsiniz.
Örnek olarak link.asp adlı bir sayfanızın olduğunu düşünelim. Link.asp sayfasının içinden Link_Guncelle.asp?ID=1 şeklinde bir gidiş olsun.Eğer siz aşağıdaki kodu link_guncelle.asp'deki request.querystring kısmınıza koymazsanız. Kötü niyetli kişiler ' karakteri ile SQL cümlenizi istedikleri yönde kullanabilirler.

Sizin koymuş olduğunuz kod şu şekilde ise; ID = REQUEST.QUERYSTRING("ID") bu kodu aşağıda verdiğimiz şekilde değiştirin:


Kod:
ID = REQUEST.QUERYSTRING("ID") IF Not IsNumeric(REQUEST.QUERYSTRING("ID")) THEN response.write "Lütfen Geçerli bir ID numarası girin." response.end END IF
↓↓↓↓↓

Bu adımda da sayfalarımızda kullanmış olduğumuz formlardan gelen verilerde bulunan ' karakterini nasıl etkisiz hale getirebileceğimizi göreceğiz.

Sayfalarınızda kullandığınız formların işlendiği yani örnek olarak form.asp'nin bilgileri kaydetmek için yönlenmiş olduğu form_kaydet.asp dosyasındaki REQUEST.FORM kısımlarını koruma altına almanız gerekmektedir.Bunu aşağıda yazmış olduğumuz fonksiyon kodu ile çok basit bir şekilde gerçekleştirebilirsiniz:

Bu fonksiyon kodunu sayfanızın en tepesine koymanız yeterli olacaktır:

Kod:
Function KarakterTemizle(Veri) KarakterTemizle = Replace(Veri, "'", "''") Veri = KarakterTemizle End Function
Fonksiyon kodunu sayfanıza yerleştirdikten sonra aşağıda yanlış olan yolu ve doğru olan yolu görebilirsiniz:

Yanlış olan Hali: GelenVeri = REQUEST.FORM("GelenVeri")

Doğru hali: GelenVeri = KarakterTemizle(Request.Form("GelenVeri"))


↓↓↓↓↓

Son olarak bu adımda yine form kutucukları yoluyla kodlarımıza kötü amaçlı saldırılar yapılmasını engellemek..

Yukarıda belirtiğimiz gibi form.asp'den form_kaydet.asp'ye veri yolladığımız için form_kaydet.asp içerisinde bulunan REQUEST.FORM'ları aşağıda vermiş olduğumuz fonksiyon ile koruma altına almanız gerekmektedir;


Kod:
Function KarakterTemizle(Veri) KarakterTemizle = Replace(Veri, "<", "<") KarakterTemizle = Replace(Veri, ">", ">") Veri = KarakterTemizle End Function
Bu fonksiyonu sayfanızın en tepesine koymanız yeterli olacaktır.Bundan sonra yapmanız gereken ise REQUEST.FORM kodlarınızı şu şekilde düzenlemenizdir;

Yanlış olan hali: GelenVeri = REQUEST.FORM("GelenVeri")

Doğru hali: GelenVeri = KarakterTemizle(Request.Form("GelenVeri"))


↓↓↓↓↓

En son olarak ekleyebileceğimiz şey ise fonksiyonlar birbirine çok benziyor.Biz her ikisini ayrı ayrı incelemeniz için bir birlerinden ayrı olarak yazdık.Aşağıda ikisinin birleştirilmiş halini bulabilirsiniz.Birleştirilmiş halde olan fonksiyonu da yine aynı şekilde "Doğru hali" olarak belirttiğimiz şekilde kullanabilirsiniz.

Kod:
Function KarakterTemizle(Veri) KarakterTemizle = Replace(Veri, "'", "''") KarakterTemizle = Replace(Veri, "<", "<") KarakterTemizle = Replace(Veri, ">", ">") Veri = KarakterTemizle End Function
GelenVeri = KarakterTemizle(Request.Form("GelenVeri")) veya GelenVeri = KarakterTemizle(Request.Querystring("GelenVeri"))

-------------------------------
---------------------------
-----------------
------------

Okuduğunuz için teşekkür ederim.

Rolls


---------------------
• Bu dünyada herkes birçok şeyin cahilidir. Yeter ki kendi işinin cahili olmasın. •

Ϲ⋆
Ceys - ait Kullanıcı Resmi (Avatar)
Özel Üye
Üyelik tarihi:
04/2016
Mesajlar:
7.035
Konular:
693
Teşekkür (Etti):
155
Teşekkür (Aldı):
3236
Ticaret:
(0) %
24-04-2017 23:21
#2
ellerine sağlık abi
---------------------
1 T Ü R K
Rolls - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
01/2017
Nereden:
Tekirdağ
Mesajlar:
400
Konular:
31
Teşekkür (Etti):
345
Teşekkür (Aldı):
109
Ticaret:
(0) %
24-04-2017 23:29
#3
Alıntı:
C3Y5´isimli üyeden Alıntı Mesajı göster
ellerine sağlık abi
Teşekkür ederim tertip
---------------------
• Bu dünyada herkes birçok şeyin cahilidir. Yeter ki kendi işinin cahili olmasın. •

Ϲ⋆

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler