【发布时间】:2012-03-06 05:15:11
【问题描述】:
我读到了如何保护我的网站免受 ASP.NET MVC Web 应用程序中的 CSRF 攻击。他们提到了两种方法,分别是:
通过
<@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 攻击,或者我是否可以选择其中一种方法?
【问题讨论】:
标签: asp.net-mvc-3 security csrf