c# - Html Antiforgerytoken cookie 和输入值不同

标签 c# security csrf

我在学习

CSRF prevention techniques

有人提到

Antiforgerytoken

是防止它的方法之一。在 ASP.NET MVC 应用程序中,我们可以使用 Html Helper 添加 token 。

当我使用 fiddler 时,我注意到隐藏表单输入标记中的 token 值与同名 Cookie 中的值不同。这是应该的样子吗?

在那种情况下,ASP.NET 框架如何注意发现请求不是伪造的。

希望我的问题很清楚。

最佳答案

有不同的数据集序列化为 cookie(“盐”和 token )和 HTML 标记(盐、 token 、创建时间、用户名)。它们不同但仍然具有可比性。

一些更详细的解释:

MVC的cookies有内部结构,所以序列化后的版本看起来不一样。里面的实际安全 token 应该是相同的。序列化程序存储不同的信息,具体取决于存在的信息(用户身份名称等)。还有一个版本字节,指示这是否是 session cookie 等。

关于c# - Html Antiforgerytoken cookie 和输入值不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21352819/

相关文章:

PHP REMOTE_ADDR 和安全 session

c++ - 无法从 Windows xp x64 prof 中的用户帐户访问已安装过滤器驱动程序的重分析点目录

ajax - 在没有提交按钮的情况下防止针对ajax请求和表单的CSRF

python - Django 抛出 "CSRF token missing or incorrect"错误(因为 csrfmiddlewaretoken 的空值)

c# - 获取 Json 数组大小

c# - 参数类型对象不可分配给 System.Func<object> 错误

c# - 为什么 Trackbar 值在向上箭头/PgUp 上减少?

web-services - 在 Web 服务 URL 中使用加密的数据库 ID 而不是 UUID 是个好主意吗?

c# - 您如何实际实现搜索契约(Contract)? (C#)

security - 单页应用程序和 CSRF