(CSRF) Ataklarına Karşı ASP.NET MVC AntiForgeryToken Kullanımı

Cross-Site Request Forgery (CSRF) Atağına Karşı ASP.NET MVC AntiForgeryToken Kullanımı

CSRF atağı saldırgan tarafından son kullanıcının kullandığı uygulamada, isteği dışında işlemler yaptırılabilmesidir diyebiliriz. Gelen isteğin web sayfasındaki form yapılarında  bizim sunucumuzdan mı yoksa karşı sitelerden mi geldiğini algılamak ve buna karşı çözüm üretmek CSRF karşı emniyet sağlanması açısından önemlidir.

Asp.Net MVC’de bu sorunu ortadan kaldırabilmek için token eşleme yapılır.Formda üretilen tokenla controllerdaki actionda üretilen tokenın aynı olması icap eder. Bunun için Hem form da aynı zamanda action methodunda AntiForgeryToken kullanmalıyız.Formda Html.AntiForgeryToken() kodunu yazmalıyız.Action methodunun hemen üst satırına ise [ValidateAntiForgeryToken] attributunue eklememiz yeterlidir.

Örneğin index.cshtml dosyamıza şu formu ekleyelim:

<h2>Index</h2>
<div style="font-family:arial;">

    @using (Html.BeginForm()) {
        @Html.AntiForgeryToken()
        <b>Comments:</b>
        <br />
        @Html.TextArea("comments")
        ;
        <br />

     }

</div>

Controller içerisindeki Index action methodunu da şu şekilde tanımlamak yeterlidir.

[HttpPost]
[ValidateAntiForgeryToken]
public string Index(string comments)
{
    return "Your comments :" + comments;
}