ValidateAntiForgeryToken的目的,解释和例子

你能解释一下ValidateAntiForgeryToken的用途,并且展示一下关于MVC 4中的ValidateAntiForgeryToken例子吗?

我找不到任何解释这个属性的例子?

MVC的防伪支持为仅限HTTP的cookie写入唯一值,然后将相同的值写入表单。 提交页面时,如果cookie值与表单值不匹配,则会引发错误。

请注意,该function可以防止跨站点请求伪造 。 也就是说,来自其他网站的表单发布到您的网站,试图使用经过身份validation的用户的凭据提交隐藏的内容。 攻击包括欺骗login的用户提交表单,或者在页面加载时通过编程方式触发表单。

该function不会阻止任何其他types的数据伪造或基于篡改的攻击。

要使用它,请使用ValidateAntiForgeryToken属性修饰操作方法或控制器,并在发送到方法的表单中发出对@Html.AntiForgeryToken()的调用。

ValidateAntiForgeryToken属性的基本目的是防止跨站请求伪造攻击。

跨站点请求伪造是攻击者从可信用户的浏览器发送有害脚本元素或恶意命令或代码的攻击。有关跨站点请求伪造的更多信息,请访问http://www.asp.net/mvc/ overview / security / xsrfcsrf-prevention-in-aspnet-mvc-and-web-pages 。

使用起来很简单,您需要使用ValidateAntiForgeryToken属性来装饰方法如下:

 [HttpPost] [ValidateAntiForgeryToken] public ActionResult CreateProduct(Product product) { if (ModelState.IsValid) { //your logic } return View(ModelName); } 

它来自System.web.mvc命名空间

而在你看来,添加这个代码来添加令牌,以便在提交时用来validation表单

 @Html.AntiForgeryToken()