我正在学习
CSRF预防技术
并且提到了
Antiforgerytoken
是防止它的方法之一。在ASP.NET MVC应用程序中,我们可以使用 Html Helper 来添加令牌。
当我使用fiddler时,我注意到隐藏表单输入标记中的标记值和同名Cookie中的值是不同的。这是怎么回事?
在这种情况下,ASP.NET框架如何确保发现请求不是伪造的。
希望我的问题很明确。
答案 0 :(得分:7)
有不同的数据集序列化为cookie(“盐”和令牌)和HTML标记(盐,令牌,创建时间,用户名)。它们不同但仍具有可比性。
更详细的解释:
MVC的cookie具有内部结构,因此它们的序列化版本看起来不同。内部的实际安全令牌应该是相同的。序列化程序根据存在的信息(用户身份名称等)存储不同的信息。还有一个版本字节,指示这是否是会话cookie等等。