Я читал о том, как защитить свой веб-сайт от атак CSRF в ASP.NET MVC. веб приложение. Они упомянули два способа сделать это::
с использованием проверки токена с помощью <@Html.AntiForgeryToken()>
и[ValidateAntiforgeryToken]
с использованием проверки HTTP-реферера, такой как:
public class IsPostedFromThisSiteAttribute : AuthorizeAttribute
{
public override void OnAuthorize(AuthorizationContext filterContext)
{
if (filterContext.HttpContext != null)
{
if (filterContext.HttpContext.Request.UrlReferrer == null)
throw new System.Web.HttpException("Invalid submission");
if (filterContext.HttpContext.Request.UrlReferrer.Host !=
"mysite.com")
throw new System.Web.HttpException
("This form wasn't submitted from this site!");
}
}
}
и
[IsPostedFromThisSite]
public ActionResult Register(…)
. Поэтому я запутался, стоит ли мне использовать оба из них. для защиты моего веб-сайта от атак CSRF или я могу выбрать один из этих методов?