@Html.AntiForgeryToken()有什么用?

What is the use of @Html.AntiForgeryToken()?

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

这是为了防止 Cross-site request forgery in your MVC application. This is part of the OWASP Top 10,这对网络安全至关重要。使用 @Html.AntiforgeryToken() 方法将为每个请求生成一个令牌,这样就没有人可以伪造表单 post.

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

示例:

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

假设我是一个坏人,我想用垃圾信息淹没您的服务器,我需要做的只是继续直接发布到 (example.com/account/register) 而无需访问您的网站。所以为了阻止我,你实施了 AntiForgeryToken,这样你就可以确保我在提交注册信息之前访问了该页面。

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

@Html.AntiForgeryToken()有什么用?

现场 - 场景:

假设,您登录了您的银行账户,打算给您的朋友转账。黑客知道您已登录,也知道汇款提交的 URL。突然,您收到一封电子邮件并查看。你看到一张图片,不小心点击了它。然后,大约一分钟后,您会收到另一条消息,提示您的帐户已扣除一些金额。实际上,该图像是由黑客发送的,并且在该图像的后面 URL 已通过您的点击提交。

所以我们在应用程序中使用 AntiForgeryToken() 来防止黑客攻击。

Antiforgery() 用于阻止机器人填写任何表格。这将停止添加数据而不进入表单