即使在一次请求后,防伪标记也可以重复使用

时间:2018-03-07 12:39:14

标签: asp.net-mvc security csrf-protection antiforgerytoken

我正在研究asp.net mvc应用程序。 在视图中我添加了@Html.AntiForgeryToken(),在控制器中我添加了属性[ValidateAntiForgeryToken]。现在我的观点是,当我发送删除任何文档的请求时,会创建一个防伪令牌。我复制了那个令牌。 我将删除其他文档,并用以前使用的令牌替换系统生成的令牌。我的请求仍然是成功删除文件 我正在使用 Burp Suite 进行上述所有操作。 请明确一生的防伪令牌。 当我们已经使用过一个防伪令牌时,令牌应该在使用之后到期吗? 谢谢 Ketan Mate

2 个答案:

答案 0 :(得分:0)

这不是防伪令牌如何工作,而且AF令牌用于防止CSRF攻击意味着它不允许不受信任的服务器发布表单

当你实现@ html.AntiforgeryToken()时,这一行会创建一个隐藏的字段以及一个cookie,这意味着当你发布表单时两者都是比较的,如果任何一个丢失或错配,这意味着它不会发布,因为您的cookie伪造令牌与之前伪造的令牌匹配,它将在您的案例中发布,这就是它应该如何工作,因此无后顾之忧

答案 1 :(得分:0)

Anti-ForgeryToken在表单中创建一些加密值,并在Cookie中存储相同的值RequestVerificationToken.both会在您提交表单时提交给服务器。

RequestVerficationToken cookie的到期值设置为Session.So当用户离开浏览器会话超时(默认为20分钟)时,它将过期。因此,在您的情况下,您可以在同一页面上的多个请求中使用相同的令牌,直到会话过期。