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

antiforgery-overview

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

Yazı gezinmesi

Mobil sürümden çık