MVC CSRF Saldırısı Nasıl Engellenir? Bölüm-43
  1. Anasayfa
  2. ASP.Net

MVC CSRF Saldırısı Nasıl Engellenir? Bölüm-43

2

Bu yazımda sizlerle MVC özelliklerini kullanarak CSRF saldırılarını nasıl engelleyeceğimizi öğreneceğiz.

CSRF (Cross Site Request Forgery) Nedir?

Web uygulamalarında Url adresleri aracılığı ile parametre göndererek sisteme yapılan saldırılara verilen isimdir.

Resim-1

Visual Studio geliştirme ortamını açalım, File>New>Project yolunu izleyerek MVC projemizi oluşturmaya başlayalım.

Resim-2

Web şablonlarından ASP.NET Web Application seçeneğini seçelim Next seçeneği ile devam edelim.

Resim-3

Projemize isim verelim .Net Framework seçimini yapalım ve Create seçeneği ile devam edelim.

Resim-4

MVC şablonunu seçelim ve hazır bir MVC projesi oluşturalım. Create seçeneği ile devam edelim.

Resim-5

Controllers klasörüne sağ tıklayalım Add>Controller seçeneği ile Controller ekleme işlemini başlatalım.

Resim-6

Empty Controller seçeneğini seçelim ve Add işlemi ile ekleyelim.

Resim-7

Controller dosyamıza isim verelim ve Add seçeneği ile ekleyelim.

Resim-8

Models klasörüne sağ tıklayalım Add>Class seçeneği ile ekleme işlemlerine başlayalım.

Resim-9

Class dosyamıza bir isim verelim ve Add seçeneği ile ekleyelim.

Resim-10

Class dosyamıza değişkenlerimizi tanımlayalım.

Resim-11

Controller dosyamızda metodumuza sağ tıklayarak Add View seçeneği ile View ekleme işlemini başlatalım.

Resim-12

View dosyamız otomatik olarak ActionResult metodumuz ile aynı ismi alacaktır. Add ile ekleme işlemini gerçekleştirelim.

Resim-13

View dosyamızda Model içinde bulunan Class dosyamızı tanıtarak bir Form oluşturalım. Programımızı çalıştıralım.

Resim-14

Projemizi çalıştırdıktan sonra sayfa üzerinde sağ tıklayalım ve İncele seçeneğini seçelim veya F12 tuşuna basalım.

Resim-15

Açılan sayfada Form üzerinde bulunan sayfayı hangi adrese POST edeceğimiz ve Html elementlerimizin isimleri bulunmaktadır. Bu bilgiler CSRF atakları yapmak için kullanılabilmektedir.

Resim-16

CSRF testi için Fiddler isimli yazılımı sitesinden indirelim. Kurulum işlemlerini gerçekleştirelim ve yazılımı çalıştıralım.

Resim-17

Yazılımı çalıştırdıktan sonra Composer sekmesine Url adresimizi ve parametrelerimizi yazalım ve Execute butonuna tıklayalım.

Resim-18

HTTP protokolünden 200 numaralı yanıtı aldığımızı görmekteyiz. Bunun anlamı göndermiş olduğumuz isteğin iletildiği ve program tarafından başarılı olarak kabul edilmesidir. Programımız dışarıdan gelecek CSRF saldırılarına karşı savunmasız durumdadır.

Resim-19

Controller dosyamızda bulunan metodumuza AntiForgeryToken Attribute ekleyelim.

Resim-20

Formumuza ise Html.AntiForgeryToken Helper nesnemizi ekleyelim. Programı çalıştıralım ve aynı isteği tekrar yapalım.

Resim-21

İsteğimizi yaptığımızda HTTP 500 kodu almaktayız yani artık dışarıdan gelen isteklerde sayfamız çalışmamaktadır. Eklemiş olduğumuz Attribute sayfa içerisinde eklediğimiz Helper aracılığı ile gönderilecek özel kodu doğrulamaktadır. Uygulama içinden gelen istekler kabul edilmektedir. Dışarıdan gelen isteklerde programımız yanıt vermemektedir.

MVC geliştirirken CSFR ataklarını nasıl engelleyeceğimizi görmüş olduk.

Bir sonra ki yazıda görüşmek dileğiyle.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

TAGs: mvc, mvc nedir,asp.net mvc,microsoft,csrf,csrf attack,anti forgery,anti forgery token,mvc csrf attack,csrf nedir,csrf engelleme

Bu İçeriğe Tepkin Ne Oldu?
  • 1
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Servan Oral, 1991 yılında Diyarbakır’da doğdu. Üniversite öncesi öğrenimini Malatya’da tamamladı. Dicle Üniversitesi ve Atatürk Üniversitesi Bilgisayar Programcılığı mezunudur. .Net Developer olarak birçok firmada görev almıştır. MSHOWTO bünyesinde yazar olarak görev yapmaktadır. Uzmanlık alanları olan; Bilişim Güvenliği, Microsoft Azure, Microsoft Visual Studio, C# .Net, Asp.Net, Cloud Computing, Microsoft Azure SQL, Microsoft SQL Server, MVC .Net alanlarında yazarlık yapmakta ve etkinliklerde uzmanlık alanlarında konuşmacı olarak görev almaktadır. MCP sertifikası bulunmaktadır.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yorumlar (2)

  1. 24/01/2021

    Merhaba Servan Bey,

    Benim anlamadığım bir kısım şu dışarıdan itekleri kısıtlarsak kullanıcı nasıl kullanacak sayfayı?

    Teşekkürler Kolay gelsin

    • 26/01/2021

      Merhaba,

      Genelde üyelik sistemi barındıran siteler için kullanıcı giriş işlemi yaptıktan sonra ona atanan bir token aracılığı ile bu sorunu çözebiliyorsunuz. Zaten CSRF saldırısı da bu tarz sistemlere yönelik yapılmaktadır.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir