【发布时间】:2012-07-04 01:20:08
【问题描述】:
我正在使用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 保护有根本的误解吗?还是这是一项新功能?
【问题讨论】:
标签: c# .net asp.net-mvc security csrf