我正在研究asp.net mvc应用程序。
在视图中我添加了@Html.AntiForgeryToken()
,在控制器中我添加了属性[ValidateAntiForgeryToken]
。现在我的观点是,当我发送删除任何文档的请求时,会创建一个防伪令牌。我复制了那个令牌。
我将删除其他文档,并用以前使用的令牌替换系统生成的令牌。我的请求仍然是成功删除文件
我正在使用 Burp Suite 进行上述所有操作。
请明确一生的防伪令牌。
当我们已经使用过一个防伪令牌时,令牌应该在使用之后到期吗?
谢谢
Ketan Mate
答案 0 :(得分:0)
这不是防伪令牌如何工作,而且AF令牌用于防止CSRF攻击意味着它不允许不受信任的服务器发布表单
当你实现@ html.AntiforgeryToken()时,这一行会创建一个隐藏的字段以及一个cookie,这意味着当你发布表单时两者都是比较的,如果任何一个丢失或错配,这意味着它不会发布,因为您的cookie伪造令牌与之前伪造的令牌匹配,它将在您的案例中发布,这就是它应该如何工作,因此无后顾之忧
答案 1 :(得分:0)
Anti-ForgeryToken在表单中创建一些加密值,并在Cookie中存储相同的值RequestVerificationToken.both会在您提交表单时提交给服务器。
RequestVerficationToken cookie的到期值设置为Session.So当用户离开浏览器会话超时(默认为20分钟)时,它将过期。因此,在您的情况下,您可以在同一页面上的多个请求中使用相同的令牌,直到会话过期。