UltraVB.Com | vBulletin Destek ve Geliştirme Forumu  

Geri git   UltraVB.Com | vBulletin Destek ve Geliştirme Forumu > Programlama > Programlama > ASP (Active Server Pages)

Tags:

Cevapla
 
LinkBack Seçenekler Stil

Alt 03-27-2008   #1 (permalink)
Webmaster
 
KraL - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Dec 2006
Yaş: 26
Mesajlar: 905
Rep Gücü: 27
KraL is on a distinguished road
Thumbs up Sql Enjeksiyonu hakkında bilgiler ve önlemler

Veritabanından verilerimizi çekerken sql sorgulama dilini kullanıyoruz. Peki önlemini almadıktan sonra bu olay ne kadar güvenli olabilir ?



Sql enjection'un kullanılabilmesi için ziyaretçi & tarayıcı tarafından veri girilebilen yada bilgi verilebilen bir sayfa olması gerekmektedir.
Örneğin üyelik sistemleri, yada sayfa adresinde bulunan verinin kimlik'leri vb...

Eğer sayfa.asp?id=5 vb. adresinden değer alıp sonra bu değer ile veritabanından veri çekiyorsanız ve sql enjeksiyonu önlemini almamışsanız sitenizde açık var demektir.
Örnek:

Farzedelim sayfa.asp?id=4 sayfasındayız.

Kod:
Bu Bölümü Sadece Kayıtlı Kullanıcılar Görebilir.
Bu şekilde veritabanından id'si 4 olan kaydı seçer. Çünkü sayfa.asp?id=4 konumundayız. Yani id'yi sayfa adresinden çekiyor. Biz sayfa adresinde id stringine başka bir sql kodu yazarsak onu alır.
Mesela
sayfa.asp?id=4 or id=5 or id=6
vb... Bu sql kodunu veritabanında çalıştırır. Bu sql kodu zararsızdır ama kullanıcılar zararlı sql kodları girecektirler. Burada o kodları veremiyoruz.

Önlemi:

Kod:
Bu Bölümü Sadece Kayıtlı Kullanıcılar Görebilir.
Bu şekilde sadece sayısal bir değer girmesini sağlarız.
Eğer değer sayısal değilse işlemi durduruyoruz.

şimdide üyelik girişlerine bakalım.
Genelde iki adet kutucuk bulunur. Kullanıcı adı ve şifresi diye.
Girilen bilgiler bir sayfada işletilir. Eğer tabloda bu kullanıcı adına ve şifresine uyan bir veri varsa giriş yaptırırız. Bunuda sql sorgusu ile gerçekleştiririz.

Kod:
Bu Bölümü Sadece Kayıtlı Kullanıcılar Görebilir.
Sql sorgusunda kullanıcı adı ve şifresini sorgulatıyoruz. Dikkat ettiyseniz and komutunu kullandık. Yani girilen değere uyan kullanıcı adı ve şifre aramasını sağladık. Eğer or kullansaydık kullanıcı adı veya şifresini aratırdık. Mantıken şifre yanlış olsa bile kullanıcı adı olduğundan giriş yapar. Yada tam tersi şifre doğruyken kullanıcı adı yanlış olursa giriş yapar.

Sanırım or ve and komutun farkını anladık.
Sql sorgusuna değerler kutucuklardan geliyor. Yani biz giriyoruz.
Eğer kutucuğa zararlı bir sql kodu girersek sql sorgusunda çalıştırılır.
Mesela iki kutucuğada 'or' yazarsak and yerine or deyimi çalıştırmış oluruz.
Dolayısıyla giriş yapılır.

Önlemi:

Kod:
Bu Bölümü Sadece Kayıtlı Kullanıcılar Görebilir.
Kullanımı:
Verilerimizi çekerken bu fonksiyondan geçmesini sağlayacağız.

Kod:
Bu Bölümü Sadece Kayıtlı Kullanıcılar Görebilir.
__________________
E-Ticaret Sitesi Kurulur

Tasarım Yapılır

Not : Pm Atarak Msn Destek İstemeyiniz



KraL isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla

Cevapla

Anahtar Kelimeler
bilgiler, enjeksiyonu, hakkında, sql, önlemler


Thread Tags
sql enjeksiyon acık kodları




Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
vbuLLetin Kısa BiLgiLer dEatH Genel Sorunlarınız & Çözümleri 1 03-19-2008 02:57
Form'dan POST Metoduyla Gelen Bilgiler Kaiser_Dealxa PHP (Hypertext Preprocessor) 0 04-18-2007 19:42
Form'dan GET Metoduyla Gelen Bilgiler Kaiser_Dealxa PHP (Hypertext Preprocessor) 0 04-18-2007 19:39


Şu Anki Saat: 19:18


Powered by vBulletin® Version 3.7.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
Beşiktaş Tezahüratları