我正在使用AntiForgeryToken
辅助方法。根据我对 AntiForgeryToken 的了解,它是会话基础,因此每个用户都有相同的令牌,但另一个用户将有不同的令牌(前提是您对所有表单使用相同的盐)。我的“问题”是AntiForgeryToken
为具有相同盐的同一用户生成不同的令牌。例如 ...
控制器
public ActionResult Test()
{
return View();
}
看法
@using (Html.BeginForm())
{
@Html.AntiForgeryToken("Salty!")
}
输出请求 #1
<input name="__RequestVerificationToken" type="hidden" value="K1sijFuYvyGUJjGg33OnLjJaU3tFpGFDutRt9TOFSkZ6FcrhJMMQPnOqjIHuTwBXs/sPBXEiE+1qyV9l63nnSO161b+OtLbaBoPC7K3/7wxtnuSY+N0o/fqBgVoDyac4dNVp+OvanKBSrHINKfc3WEg9269BHOJNzFowC6Aeac/afAGTGrBypxUHfqrKVowD" />
输出请求 #2
<input name="__RequestVerificationToken" type="hidden" value="mOpP6LMQXnCmjr5/Wdtnhguh3PyZxWj7GWf8LYzZXPKcJBBT+DbAHvynquSD65O0DBw1RKR7DxCNg372ukftCOWms+o75CraMyFMnvjGk7RU+znIQm05eRQvr5H6d/MDyn+0DWm3jLnMBM9GplsgMRqbdAHzSe69/cS2x9A4X/9jFTZQHUWXXHUr0xewF8Rk" />
使用相同盐的相同会话的密钥不同。我对 CRSF 保护有根本的误解吗?或者这是一个新功能?