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