【发布时间】:2017-11-30 17:01:28
【问题描述】:
为什么我们需要使用@Html.AntiForgeryToken()?
我搜索了但没有得到满意的答案。
【问题讨论】:
标签: asp.net-mvc html.beginform
为什么我们需要使用@Html.AntiForgeryToken()?
我搜索了但没有得到满意的答案。
【问题讨论】:
标签: asp.net-mvc html.beginform
这是一项安全功能,可帮助保护您的应用免受跨站点请求伪造。
例子:
假设您的网络应用中有注册功能。您有一个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。
【讨论】:
这是为了防止 Cross-site request forgery 在您的 MVC 应用程序中出现。这是OWASP Top 10 的一部分,它对网络安全至关重要。使用@Html.AntiforgeryToken() 方法将为每个请求生成一个令牌,这样就没有人可以伪造表单帖子。
【讨论】:
@Html.AntiForgeryToken()有什么用?
现场 - 场景:
假设,您已登录到您的银行帐户,并打算将一些钱转给您的朋友。黑客知道您已登录,并且还知道汇款提交的 URL。突然,您收到一封电子邮件并检查它。你看到一张图片,然后错误地点击了它。然后,大约一分钟后,您会收到另一条消息,说明已从您的帐户中扣除了一些金额。实际上,该图片是黑客发送的,并且在您点击该图片后提交了一个 URL。
以便我们在应用程序中使用AntiForgeryToken() 防止黑客攻击。
【讨论】:
Antiforgery() 用于阻止机器人填写任何表格。这将停止添加数据而不进入表单
【讨论】: