gpt4 book ai didi

c# - ASP.NET MVC CSRF 防伪 token 会过期吗?

转载 作者:可可西里 更新时间:2023-11-01 08:29:31 24 4
gpt4 key购买 nike

我正在我的 ASP.NET MVC 5 应用程序中实现 CSRF 防伪保护。特别是,我引用了 Mike Wasson 在 ASP.NET website 上描述的方法。保护响应 AJAX 请求的 Controller 方法,例如在 WebAPI Controller 中。这种方法利用了 AntiForgery.GetTokens生成基于用户的加密防伪 token 的方法,然后是 AntiForgery.Validate验证提交的 token 是否属于当前用户。

我的问题是:这些代币有生存时间吗?它们会过期吗?如果是,它们的有效期有多长?该文档在该主题上没有提及。

我不想在我的系统中允许未过期的 token 。此外,我想与客户沟通他们在请求新 token 之前有多少时间是必要的。如有必要,我可以使用 FormsAuthentication.Encrypt 实现过期 token ;但是,如果 AntiForgery 类的方法中已经内置了到期时间,那么我想避免不必要的复杂性。

最佳答案

这个想法是每个易受攻击的 HTTP POST 生成两个 token 并直接发送到服务器。因此,如果您单击表单上的“提交”按钮,将生成两个 token :一个 cookie 和一个表单值,两者都基于用户凭据,如在此处阅读(写得很好的文章):http://www.asp.net/mvc/overview/security/xsrfcsrf-prevention-in-aspnet-mvc-and-web-pages

实际上可以过期的 cookie token 是多余的,除了尝试匿名身份验证的情况外,系统不需要它。例如。看这里(第一个答案): MVC 2 AntiForgeryToken - Why symmetric encryption + IPrinciple?

不过,攻击者无法读取您的其他 token ,并且这些 token 是随每个新请求生成的。因此,无需担心到期日期。

编辑:其实,这一切也可以在您所指的文章的评论部分阅读(Mike Wasson);)

关于c# - ASP.NET MVC CSRF 防伪 token 会过期吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27937307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com