MVCでのCSRF攻撃防止


MVCでのCSRF攻撃防止
AntiForgeryTokenトークンを使用して、ASP.NETのコアにはCSRF攻撃の検出と組織のためのトークンが提供されている.
Htmlフォームに@Htmlが使用されている限り.AntiForgeryToken()はCSRF攻撃を阻止することができる.
@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)
    <fieldset>
        <div class="editor-label">
            @Html.LabelFor(model => model.Age)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Age)
            @Html.ValidationMessageFor(model => model.Age)
        </div>
        <p>
            <input type="submit" value="  " />
        </p>
    </fieldset>
}

したがって、Controllerにも[ValidateAntiForgeryToken]フィルタ機能を追加します.
この特性は、サーバ要求が改ざんされたかどうかを検出することを示す.
注意:このプロパティはpostリクエストにのみ使用でき、getリクエストは無効です.
   
        [ValidateAntiForgeryToken]//[ValidateAntiForgeryToken(Salt ="aa")]
        [HttpPost]
        public ActionResult Edit(int id, Person person)
        {
            try
            {
                //        
                return RedirectToAction("Success",person);
            }
            catch
            {
                return View();
            }
        }