0

我正在阅读有关 AntiForgeryToken 但不了解实际用途或重要性的信息。我看到人们以他们的形式写了一个代码

@using (Html.BeginForm("Create", "Register")) 
{ 
    @Html.AntiForgeryToken()  
}

所以它做了什么....它将生成一个唯一令牌,当表单发布时,这个唯一令牌将通过,并且 cookie 将通过相同的唯一令牌值传递,并且两个唯一数据将在服务器端进行比较,两者都是相等或不相等。如果不是,那么就会发生一些篡改。

我只是不明白其他表单字段值是否更改或篡改,那么如何确定该篡改。假设我们经常将有价值的数据存储在隐藏字段中。如果我需要保护隐藏字段值,那么 AntiForgeryToken 如何帮助我们?

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

谁能给我一些示例代码,我可以通过它在我的页面中放置 3 个有价值的数据,如果被篡改,则会向用户显示一条友好的消息。指导我怎么做。谢谢

4

1 回答 1

6

AntiForgeryToken 背后的想法是防止数据从“假”源发布。使用伪造(伪造)表单的攻击者可以欺骗用户使用他们当前的会话上下文提交任何类型的数据。正如你可以想象的那样,这会造成很大的伤害。

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

我认为您有一个误解,即防伪令牌是关于检测发布的数据是否经过“修改”,而事实并非如此。

这里有更多关于这个。

于 2013-09-24T10:31:47.300 回答