Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 令牌验证方法如何防止asp.net mvc3中的CSRF_Asp.net Mvc 3_Security_Csrf - Fatal编程技术网

Asp.net mvc 3 令牌验证方法如何防止asp.net mvc3中的CSRF

Asp.net mvc 3 令牌验证方法如何防止asp.net mvc3中的CSRF,asp.net-mvc-3,security,csrf,Asp.net Mvc 3,Security,Csrf,我了解了如何使用生成隐藏字段中的加密值,该字段还将匹配另一个存储在用户浏览器中作为会话cookie的值 但我的问题是:- 1.会话cookie中的值是否也会被加密, 2.如果是,那么动作控制器上的[ValidateAntiforgeryToken]如何知道如何解密这两个值并匹配它们 溴 会话cookie中的值也会被加密吗 对。它代表一个令牌。它的值与用于隐藏字段的值相同。实际上,Html.AntiForgeryToken()helper做了两件事。它生成令牌并将其呈现在隐藏字段中,还设置具有相同

我了解了如何使用生成隐藏字段中的加密值,该字段还将匹配另一个存储在用户浏览器中作为会话cookie的值

但我的问题是:- 1.会话cookie中的值是否也会被加密, 2.如果是,那么动作控制器上的[ValidateAntiforgeryToken]如何知道如何解密这两个值并匹配它们

会话cookie中的值也会被加密吗

对。它代表一个令牌。它的值与用于隐藏字段的值相同。实际上,
Html.AntiForgeryToken()
helper做了两件事。它生成令牌并将其呈现在隐藏字段中,还设置具有相同值的cookie

如果是,那么动作控制器上的[ValidateAntiforgeryToken]如何知道如何解密这两个值并匹配它们

它使用与经典WebForms加密/解密ViewState相同的加密/解密算法。这是一种基于机器密钥的对称加密算法。这就是为什么如果您在web场中运行,您应该确保在所有节点上都具有相同的机器密钥,因为如果在web场的一个节点上生成并加密了防伪令牌,则在发送POST请求时,如果机器密钥不匹配,则可能无法在另一个节点上解密该令牌