İstanbul Düğün Fotoğrafçısı

İstanbul Düğün Fotoğrafçısı Fiyatları
 
AnasayfaSSSAramaKayıt OlGaleriGiriş yap

Paylaş | 
 

 SQL Injection Sorunu Ve Çözümü

Aşağa gitmek 
YazarMesaj
Ckmk
Admin
Admin
avatar

Cinsiyet : Erkek
Mesaj Sayısı : 6844
PUAN : 34632
Tebrikler : 65
Kayıt tarihi : 14/10/09
Yaş : 28
Nerden Nerden : istanbul
Lakap Lakap : Admin

Altın
Wwe Birinciliklerim:

MesajKonu: SQL Injection Sorunu Ve Çözümü   Cuma Eyl. 09, 2011 12:54 pm

Bu yazı dizisi temel olarak saldırıya dayalı olduğundan dolayı detaylı korunma ve defans yolları anlatılmamıştır ve bu yazı dizisi etrafında anlatılmayacaktır. Saldırıyı anlamak korunmayı anlamanın en önemli kısımlarından biridir. Yazıda sadece yöntemlere değinilmiş ve ilgili dil-platform implementasyon pratiği okuyucuya bırakılmıştır.

SQL Injection şüphe ***ürmez ki web uygulamalarında yaygınlık / hasar oranı en yüksek açıktır. Muhtemelen exploit etmesi de en eğlenceli ve bazen tahmin edilenden daha zor olan açıktır.

Belirttiğimiz gibi SQL Injection’ ın ana nedeni web uygulamasının kullanıcıdan gelen girdiyi doğru şekilde kontrol etmeden o girdi ile dinamik bir SQL cümleciği oluşturmasından kaynaklanmaktadır.

Bir önceki bölümdeki örnekte dikkat ettiyseniz saldırı girdisi (') tırnak karakteri ile başlamıştı. Çünkü SQL’ e istediğimiz komutu göndermek için öncelikle string bölümünden (') tırnak karakteri ile kaçıp daha sonra istediğimiz SQL komutunu SQL cümleciğine ekledik. Burada eklediğimiz komut “OR 1=1” gibi bir komuttu. Bu komut sayesinde SQL cümleciği tüm kayıtları döndürdüğünden dolayı sisteme başarılı bir şekilde giriş yapabilmiştik.

Özetle normalde SQL cümleciğinin yapısını değiştirerek yapması gerekeni değil yapmasını istediğimiz şeyi yaptırdık. Bunun ana nedeni ise SQL cümleciğinin içerisine dışarıdan (') tırnak karakteri aracılığı ile komut ekleyebilmemizdi.

SQL Injection’ dan korunma da iki altın kural vardır.

1. Tüm meta-karakterlerden kaçılmalıdır,
2. Nümerik olarak beklenen parameterlerin nümerik olup olmadığı kontrol edilmelidir.

Birinci Kural;
Dinamik oluşturulan tüm SQL cümlecikleri meta karakterlerden başarılı bir şekilde kaçmalıdır. Örnek olarak SQL Server için (') tek tırnak karakterini uygulama (') iki tek tırnak ile değiştirilmelidir. Bu sayede SQL Server bunun tek tırnak karakteri olduğunu anlayabilir.

İkinci Kural;
Eğer oluşturulacak SQL cümlesi için beklenen data nümerik ise nümerik mi diye kontrol edilmeli eğer ve nümerik değilse uygulama bu datayı kabul etmemelidir.

Saldırının anatomisi anlaşıldıktan sonra defansı gayet basit olacaktır.

SQL cümleciği oluşturulmadan önce SQL cümleciğini oluşturmaya yardımcı olan tüm dinamik dataların beklenen data tiplerine uyup uymamasının kontrol edilmesi. Nümerik beklenen data gerçekten nümerik mi? gibi.String kayıtlarda kesinlikle meta karakterlerden kaçmaParameterized SQL cümlecikleri oluşturmaStored Procedure Kullanma (Stored Procedure lerde güvenli şekilde yazılmalıdır)Whitelisting, Sadece beklenen karakterlerin kabul edilmesi. Mesela isim girilecek bir yerde noktalama işaretlerinin kabul edilmemesi gibi. Whitelisting yapıldıktan sonra gene meta-karakterlerden kaçılmalıdır.Detaylı korunma metotları bu yazı dizisinin konusu dışındadır.

Alıntıdır.
Sayfa başına dön Aşağa gitmek
Kullanıcı profilini gör http://dugunfotografcisi.yetkinforum.com
berk
Wwe Hayranı
Wwe Hayranı


Cinsiyet : Erkek
Mesaj Sayısı : 93
PUAN : 102
Tebrikler : 1
Kayıt tarihi : 11/04/10

MesajKonu: Geri: SQL Injection Sorunu Ve Çözümü   Cuma Eyl. 09, 2011 1:55 pm

teşekürler paylaşım için
Sayfa başına dön Aşağa gitmek
Kullanıcı profilini gör
 
SQL Injection Sorunu Ve Çözümü
Sayfa başına dön 
1 sayfadaki 1 sayfası

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
İstanbul Düğün Fotoğrafçısı :: Programlama :: Güncel Teknoloji & Hi-Tech :: Güvenlik Bölümü-
Buraya geçin: