ASP.NET MVC - SQL Enjeksiyonu

İçindekiler
Uygulamalarımızda alabileceğimiz pek çok saldırı türü vardır, en yaygın olanlarından biri ve büyük miktarda hasar üretebilen saldırıdır. SQL EnjeksiyonuBu saldırı, işlevselliğini etkileyebilecek bilgileri çıkarmak veya değerler eklemek için veritabanlarına yönelik sorguları işleme biçimimizdeki güvenlik açıklarını bulmaktan oluşur.
Bu tür saldırılara karşı kendimizi korumak için öncelikle nelerden oluştuğunu bilmemiz gerekir, bu sayede ne tür önlemler almamız gerektiğini öğrenebiliriz.
Bahsettiğimiz gibi, bu saldırı veritabanımızın düzgün çalışmamasına neden olur, bunun için saldırgan belirli güvenlik açıklarına göre sorgularımızı başarısız kılan veriler sunar, bununla saldırgan deneyebilir şemaları al veya işlemi tehlikeye atabilecek veriler girin, örneğin uygulamamızın yönetim bölümüne erişmek için bir kullanıcı girin.
En yaygın yollardan biri, parametreleri denetleyicilerden aldığımız gibi doğrudan girmemizdir, örneğin kategorilere göre bir arama yapıyoruz ve denetleyiciden, aranacak bir kategorinin tanımlayıcısını, temizlemeden doğrudan geçerse, alıyoruz. saldırgana mevcut tüm kategorileri gösteren bir saldırı oluşturabilir.
Aşağıdaki güvensiz koda bakalım:

BÜYÜT

içinde nasıl olduğunu görebiliriz 6. satır arama koşulunu oluşturuyoruz ve sonra satır 10 Doğrudan sorguyu oluşturan metoda iletiyoruz, tecrübesiz bir göz herhangi bir problem görmeyebilir, ancak bir saldırgan aşağıdaki parametreyi girerse: "1 veya 1 = 1" Tüm masamızın listesini alabilirsiniz.
Kendimizi nasıl koruruz?Bu durumda kendimizi korumanın yolu iki temel adımdan geçer: ilk veriyi aldığımız anda direk çalıştırılmasına izin veremiyoruz bunun için sorgudan önce parametreyi kural dışı karakterler arayan bir yöntemle temizlemeli ve bulması durumunda kullanıcıyı 404 sayfasına göndermeli veya sayfa bulunamadı.
Aldıklarımızı nasıl filtreleyebileceğimizi aşağıdaki kodda görelim:

Burada bir ile gözden geçiriyoruz normal ifade Denetleyicimizin aldığı sadece sayılar olsun, aksi takdirde bir mesaj göndeririz, herkes kendi versiyonunu yapabilir, ancak önemli olan uygulamamızın ne alacağını kontrol etmektir.
NS Saniye saldırıları önlemek için adım "*" joker karakteriyle çalışmayın ve bir kaydı beklediğimizde sorguları her zaman sınırlandırırız, bu şekilde birisinin tahminlerimizi aşmayı başarması durumunda tüm verileri açığa çıkarmaktan kaçınırız.
İstisnaları yakalaSon olarak, uygulamamıza geçersiz bir parametre girerse, kurulumumuzdan hassas verilere sahip olduğundan ve bize karşı kullanılabilecek olduğundan, her ne pahasına olursa olsun hatanın izinin çıkmasından kaçınmalıyız. istisnalar ve bu ayrıntılar geliştirme ortamında görülebildiği için çok fazla ayrıntı içermeyen kişiselleştirilmiş bir mesaj gönderin.
Gördüğümüz gibi, saldırıları bilmek bize uygulamamızı nasıl koruyacağımız ve kullanıcılarımıza daha fazla güvenlik sağlamak için nasıl yapacağımız konusunda farklı bir bakış açısı veriyor.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave