@ Html.AntiForgeryToken()有什么用?

时间:2017-06-27 15:03:03

标签: asp.net-mvc html.beginform

为什么我们需要使用@Html.AntiForgeryToken()? 我搜查了但是我没有得到满意的答案。

4 个答案:

答案 0 :(得分:58)

这是一项安全功能,可帮助保护您的应用免受跨站点请求伪造。

示例:

让我们假设您的网络应用中有一个注册功能。您有一个AccountController(somename.com/account/register),您希望人们提交他们的信息。通常在有人发布注册信息之前需要访问实际(somename.com/account/register)而不是提交表单。

让我说我是一个坏人,我想用垃圾信息充斥你的服务器所有我需要做的就是直接发布到(somename.com/account/register)而不访问你的网站。所以为了阻止我你实施AntiForgeryToken所以你可以确保我在浏览注册信息之前访问了这个页面。

另一个例子是(http://www.binaryintellect.net/articles/20e546b4-3ae9-416b-878e-5b12434fe7a6.aspx

答案 1 :(得分:8)

这是为了防止MVC应用程序中出现Cross-site request forgery。这是OWASP Top 10的一部分,在网络安全方面至关重要。使用@ Html.AntiforgeryToken()方法将为每个请求生成一个令牌,因此没有人可以伪造表单帖子。

答案 2 :(得分:2)

@Html.AntiForgeryToken()的用途是什么?

实时-场景:

假设您已登录到您的银行帐户,并打算将一些钱转给您的朋友。黑客知道您已登录,也知道汇款提交的URL。突然,您收到一封电子邮件并进行检查。您看到一个图像,然后错误地单击该图像。然后,大约一分钟后,您会收到另一条消息,提示您已从您的帐户中扣除了一定金额。实际上,该图像是由黑客发送的,在该图像的后面,您单击时已提交URL。

以便我们在应用程序中使用AntiForgeryToken()来防止黑客入侵。

答案 3 :(得分:0)

Antiforgery()用于停止自动填写任何表格。它将停止添加数据而无需进入表单