AntiForgeryToken()如何在MVC中工作以及如何从AntiForgeryToken检索服务器操作方法的值?

Tho*_*mas 0 asp.net-mvc-3

我正在阅读AntiForgeryToken,但不了解实际使用或重要性.我看到人们写了一个像他们一样的代码

@using (Html.BeginForm("Create", "Register")) 
{ 
    @Html.AntiForgeryToken()  
}
Run Code Online (Sandbox Code Playgroud)

所以它做了什么......它将生成一个唯一的令牌,当表单发布时,这个唯一的toke将通过,并且cookie将传递相同的唯一令牌值,并且两个唯一数据将在服务器端比较两者都是是否平等.如果没有,则发生一些篡改.

我只是不明白其他形式字段值是否会改变或篡改然后如何确定篡改.假设我们经常在隐藏字段中存储有价值的数据.如果我需要确保隐藏的字段价值,那么AntiForgeryToken如何帮助我们?

我们可以使用AntiForgeryToken将这些有价值的数据包装在其中,然后在服务器端进行比较.

任何人都可以给我一些示例代码,通过它我可以在我的页面中放入3个有价值的数据,如果篡改,那么将向用户显示友好的消息.指导我如何做到这一点.谢谢

Dim*_*rov 6

AntiForgeryToken背后的想法是防止数据从"假"来源发布.使用伪造(伪造)表单的攻击者可以欺骗用户使用其当前会话上下文提交任何类型的数据.你可以想象这会造成很大的伤害.

防止这种情况的一种方法是在表单上包含一个隐藏字段,其中包含存储在会话中的用户特定数据(随机),以便坏人无法伪造它.在这种情况下,当用户发布数据但没有用户特定令牌时,您可以将其视为恶意.

我认为你有一种误解,认为反伪造令牌是关于检测发布的数据是否已被"缓和",而不是.

这里有更多内容.