web analytics
Salı, Haziran 16, 2026
No Result
View All Result
  • Giriş
Türk İnternet
  • Ana Sayfa
  • BİLİŞİM
  • e-TİCARET
  • INTERNET
  • TELEKOM
  • YENİ TEKNOLOJİLER
  • Hakkımızda
  • Kişisel Verilerin Korunması
    • Çerez Aydınlatma Metni
    • İlgili Kişi Başvuru Formu
No Result
View All Result
  • Ana Sayfa
  • BİLİŞİM
  • e-TİCARET
  • INTERNET
  • TELEKOM
  • YENİ TEKNOLOJİLER
  • Hakkımızda
  • Kişisel Verilerin Korunması
    • Çerez Aydınlatma Metni
    • İlgili Kişi Başvuru Formu
No Result
View All Result
Türk İnternet
No Result
View All Result
Ana Sayfa BİLİŞİM Yazılım Sektörü Haberleri

ASP.NET Uygulamanızı SQL Sızdırma Saldırısından Koruyun

Bir saldırgan, web sayfasında giriş yapılabilen bir web formunun girdisine ya da sorgu sabitine SQL sorguları yerleştirerek kötü amaçlı olabilecek SQL komutlarını yürütebiliyorsa bir SQL Sızdırma Saldırısıyla karşı karşıyasınız demektir. Kullanıcının ya da sorgu sabiti girdisinin dinamik SQL sorgularını ya da depolanmış girdi parametrelerini doğrudan doğruya etkileyebildiği girdi formları, bu tür saldırılara açık formlardır.

Mark Strawmyer-Mark Strawmyer
11 Ağustos 2003
-Yazılım Sektörü Haberleri
0
Facebook'ta PaylaşTwitter'da PaylaşLinkedin'de Paylaş

SQL Sızdırma Saldırısı Nedir?

Bir saldırgan, web sayfasında giriş yapılabilen bir web formunun girdisine ya da sorgu sabitine SQL sorguları yerleştirerek kötü amaçlı olabilecek SQL komutlarını yürütebiliyorsa bir SQL Sızdırma Saldırısıyla karşı karşıyasınız demektir. Kullanıcının ya da sorgu sabiti girdisinin dinamik SQL sorgularını ya da depolanmış girdi parametrelerini doğrudan doğruya etkileyebildiği girdi formları, bu tür saldırılara açık formlardır. Olay genellikle şöyle gelişir:

  • Bir web uygulamasının, uygulamaya erişimin denetlendiği bir log-in sayfası vardır. Bu login sayfasına girmek için de bir log-in ve şifre gerekiyordur.
  • Log-in sayfasından verilen girdi, dinamik bir SQL komutu oluşturmak için ya da depolanmış bir prosedür çağrısının doğrudan girdisi olarak kullanılıyordur. Söz konusu sorguyu oluşturmak için nelerin kullanabileceğine bir örnek olarak aşağıdaki kodu verebiliriz:
    • System.Text.StringBuilder query =
    • new System.Text.StringBuilder(
    • “SELECT * from Users WHERE login = ‘”)
    • .Append(txtLogin.Text).Append(“‘ AND password='”)
    • .Append(txtPassword.Text).Append(“‘”);
    • Saldırgan login ve şifre girdisi olarak “‘ or ‘1’=’1” gibi bir girdi yazar.
    • Böylelikle SQL dinamik komutu şunun gibi bir şey olur: “SELECT * from Users WHERE login = ” or ‘1’=’1′ AND password = ” or ‘1’=’1′”.
  • Sorgunun ya da depolanmış prosedürün, girdilerdeki referansları veri tabanındaki referanslarla karşılaştırması temin edilir.
  • Sorgu veri tabanındaki verilere göre işler ve saldırgan bu yanlışlık sayesinde web uygulamasına erişim kazanır çünkü asıl SQL komutunun yerine sızdırılmış SQL komutu geçmiştir.

Uygulamanın girdiyi alacağını ve onu doğrulamak için bir arama icra etmesi ihtimalini olduğunu da göz önüne alan saldırgan, sorgunun tüm kullanıcılara dönmesine ve onların uygulamaya erişim kazanmasına neden olacak kısmi bir SQL sabiti girebilir.

Benim Uygulamamla Kim Ne Yapabilir?

Saldırganın verebileceği hasarın miktarı her bir ortam için farklılık arz edebilir. Bu temelde uygulamanızın veri tabanına erişimde kullandığı güvenlik imtiyazlarına bağlıdır. Eğer kullanıcı hesabının idarecisi ya da bazı yüksek imtiyazları varsa o zaman saldırgan uygulama veri tabanı tablolarına, veri ekleme, silme ya da güncelleme ve hatta tüm tabloları devreden çıkarmak dahil istedikleri birçok şeyi yapabilirler.

Bunu Nasıl Önleyeceğim?


İyi haber, ASP.NET uygulamanızın SQL Sızdırma Saldırısına açık olmasını engellemek göreceli olarak oldukça kolay bir iştir. Tüm kullanıcı girdinizi, bir sorgu komutunda kullanmadan önce filtre etmelisiniz. Bu filtreleme işinin çok sayıda formda yürütülmesi gerekebilir.

  • Eğer dinamik olarak oluşturulan sorgular kullanıyorsanız o zaman şu teknikleri kullanın:
    • Saldırganın SQL komutunu değiştirmesini engelleyecek şekilde, tekil girdilerin yerine iki tekil gerdi geçirerek tekil girdileri sınırlandırın. Yukarıdaki örneği temel alırsak görürüz ki, , “SELECT * from Users WHERE login = ”’ or ”1”=”1′ AND password = ”’ or ”1”=”1′” şeklindeki bir komut “SELECT * from Users WHERE login = ” or ‘1’=’1′ AND password = ” or ‘1’=’1′” şeklindeki bir komuttan çok daha farklı sonuç doğurur.
    • Kullanıcı girdisindeki tire işaretlerini kaldırın ki saldırgan şu tür bir sorgu oluşturması mümkün olmasın: SELECT * from Users WHERE login = ‘mas’ — AND password =” bu tür bir sorgu sorgunun ikinci yarısının değerlendirme dışı kalmasına ve yok sayılmasına neden olur. Bu da geçerli bir kullanıcı login’ini bilen bir saldırgan ilgili şifreyi bilmese bile erişim kazanmasına olanak tanır.
    • Sorgunun altında çalıştığı kullanıcı hesabına verilen veri tabanına erişim iznini sınırlandırın. Veri seçmek, sokmak, güncellemek ve silmek için farklı farklı kullanıcı hesapları kullanın. Başka başka hesaplardan yürütülebilecek işleri birbirlerinden ayırmakla, veri sokma, güncelleme ya da silme komutunun, seçim komutu yerine icra edilmesinin ya da tersi durumun önüne geçmiş olursunuz.
  • Tüm sorguları depolanmış prosedürler olarak kurun ve yürütün. SQL parametrelerinin işleyişe geçiş şekilleri, tire ve apostrof işaretlerinin komut sızdıracak şekilde kullanılmasını engelleyecektir. Ek olarak bu yolla veri tabanı izinlerinin sadece yürütülebilecek belirli prosedürlerle kısıtlı kalması mümkün olur. Tüm kullanıcı girdisi işleyen prosedürün bağlamına uyacak ve olası bir sızdırma saldırısına uymayacak şekilde olmalıdır.
  • Form ya da sorgu sabiti girdisinin uzunluğunu sınırlandırın. Eğer login’iniz 10 karakter uzunluğundaysa o değer için daha fazla karaktere müsaade edilmemesini temin edin. Bu, olası zararlı SQL komutlarının girdiye sızdırılmasını daha da zorlaştıracaktır.
  • Girdinin istenilen değerlerle sınırlı olduğunu teyit için, kullanıcı girdisinde doğrulama işlevi koyun. Veri doğrulaması hem müşteri hem de sunucu bilgisayarsa işlemelidir. Sunucu bilgisayar tarafındaki doğrulama, müşteri bilgisayarındaki doğrulamada meydana gelen güvenlik zayıflığını giderecek nitelikte olmalıdır. Bir saldırganın kaynak kodunuza erişmesi, onu kaydetmesi, doğrulama scriptlerinizi (betiklerinizi) değiştirmesi (ve hatta olduğu gibi silmesi) ve formu sunucunuza uygunsuz veriyle sunması mümkündür. Doğrulamanın işlediğinden mutlak surette emin olmanın tek yolu doğrulamayı sunucu üzerinde de yürütmektir. RegularExpressionValidator gibi doğrulamayı yürütecek müşteri-taraflı betiği üreten ve sunucu-taraflı yöntemi de devreye sokmanızı temin eden birkaç yapım-öncesi doğrulama nesneleri de vardır. Bulabildiğiniz doğrulayıcılar yelpazesi içinde, sizin gereksiniminizle örtüşen bir doğrulayıcı bulamazsanız CustomValidator kullanarak kendi doğrulayıcınızı oluşturabilirsiniz.
  • Login’ler ve şifreler gibi verileri şifrelenmiş bir biçimde saklayın. Kullanıcı girdisini, veri tabanındaki veriyle karşılaştırmak üzere şifreleyin. Veri artık, veri tabanına yönelik hiçbir komut anlamı taşımayan, sızdırılmış komutlardan arınmış ve saldırganın SQL komutunuzu sızdırmasına olanak tanımayacak bir şekilde veri tabanıyla karşılaştırılabilir. System.Web.Security.FormsAuthentication class dosyası, özellikle kullanıcı girdisini arındırmakta kullanışlı olan HashPasswordForStoringInConfigFile’ı içermektedir.
  • Veriyi çağıran bir sorguya verilen yanıtın satır sayısını doğrulatın. Eğer sadece bir satır veri yanıtlaması bekliyorsanız, birden fazla satırlı yanıt geldiğinde sisteme hata verdirin.

Yazar Hakkında

Mark Strawmyer, MCSD, MCSE (NT4/W2K), MCDBA, büyük ve orta ölçekli kuruluşlara yönelik .NET uygulamaları Kıdemli Mimarıdır. Mark ayrıca Indiana eyaleti, Indianapolis’teki Crowe Chizek ile beraber bir teknoloji öncüsüdür. Strawmyer, Microsoft-tabanlı çözümlerin mimarisi, tasarımı ve geliştirilmeleri konularında uzmandır. Kendisine at [email protected] adresinden ulaşabilirsiniz.

Etiketler: Bilgi

Türk İnternet'ten buna benzer yazılar için bildirim almak ister misiniz?

ABONELİKTEN ÇIK
Mark Strawmyer

Mark Strawmyer

Lütfen yorum yapmak için giriş yapın.

GÜNLÜK BÜLTEN ABONELİĞİ

Aboneliğinizi onaylamak için gelen veya istenmeyen posta kutunuzu kontrol edin.

HAFTANIN ÖNE ÇIKANLARI

  • St. Petersburg Forumu, Rusya’nın Yeni Teknoloji Stratejisinin Sinyallerini Veriyor: Nadir Toprak Elementleri, Yapay Zeka, Yarı İletkenler ve Teknolojik Egemenlik
  • Hamaney Suikasti Nedeniyle, Putin Güvenlik Gözetim Ağını Kapattırmış
  • İnsanlar Yapay Zekayı Eğitiyor: Peki Makineler Makineleri Eğitmeye Başladığında Ne Olur?
  • KVKK Kararı Sonrası Mesai Takibinde Yeni Dönem: Şirketler Alternatif Sistemlere Yöneliyor
  • Washington Yapay Zekada Yavaşlatma Yerine Hızlanmayı Seçti: Yeni ABD Yapay Zeka Doktrini ve Riskleri

HAFTANIN KELİMESİ

3GPP

3. Nesil Ortaklık Projesi (3GPP), dünya çapında çeşitli mobil (hücresel) ve telekomünikasyon standartlarını geliştiren ve sürdüren bir grup standart kuruluşudur.

3G ile birlikte kurulmuş ve telekom endüstrisinin Birleşmiş Milletleri diye tanımlanabilir. Sonraki nesiller için de standartları belirlemiştir.

Detayı için Wiki-Turk'e bakınız

İNTERNET HIZI

Türkiye'nin İnternet Hızlarını Dünya ile KarşılaştırmakKaynak : https://www.speedtest.net/global-index#mobile
Facebook Twitter LinkedIn

Bildirimler

Turk-internet.com masaüstü bildirimlerini almak için lütfen buraya tıklayın

Son Yorumlar

  • ICANN, Yeterince Temsil Edilmeyen Toplulukları Yeni gTLD Başvuru Destek Programı İle Güçlendiriyor için Tolga Kaprol
  • BTK, Yabancı e-SIM Firmalarını Engelledi için Bulent SEN
  • Sahibinden.com Domain’inin Güncellenmesi Unutulmuş için Tolga Kaprol
  • İngiliz Düzenleyici Ofcom, Bulut Servislerini ve Akıllı Cihaz Pazarını Soruşturuyor için Tolga Kaprol
  • Seçim Yaklaşırken, Kişisel Veriler Kötüye Nasıl Kullanılır? için [email protected]

Türk İnternet'ten ilginize çekecek yazılar için bildirim almak ister misiniz?

Abone Ol

© Copyrights 2000-2025 - Bu sitede yayınlanan haber/söyleşi/makale ve bilgilerin tüm hakkı turk-internet.com'a aittir.

Tekrar Hoşgeldiniz!

Aşağıdan hesabınıza giriş yapınız

Şifremi unuttum?

Şifrenizi geri alın

Lütfen şifrenizi resetlemek için kullanıcı adı veya email adresinizi girin.

Giriş yap
No Result
View All Result
  • Ana Sayfa
  • BİLİŞİM
  • e-TİCARET
  • INTERNET
  • TELEKOM
  • YENİ TEKNOLOJİLER
  • Hakkımızda
  • Kişisel Verilerin Korunması
    • Çerez Aydınlatma Metni
    • İlgili Kişi Başvuru Formu

© Copyrights 2000-2025 - Bu sitede yayınlanan haber/söyleşi/makale ve bilgilerin tüm hakkı turk-internet.com'a aittir.