我正在实现CSRF防伪保护在我的ASP.NET MVC 5应用程序中。特别是,我参考Mike Wasson在ASP.NET网站上描述的方法来保护响应AJAX请求的控制器方法,例如WebAPI控制器。此方法利用AntiForgery.GetTokens方法生成基于用户的加密防伪标记,然后使用AntiForgery.Validate验证提交的标记属于当前用户。
我的问题是:这些标记是否有生存时间?它们会过期吗?如果是这样,它们的有效期是多长?文档对此没有说明。
我不想在我的系统中允许永久有效的标记。此外,我希望向客户端传达他们需要请求新标记之前的时间。如果必要,我可以使用FormsAuthentication.Encrypt来实现过期标记;然而,如果AntiForgery
类的方法中已经内置了过期功能,那么我想避免不必要的复杂性。