gpt4 book ai didi

asp.net-mvc - MVC防伪 token

转载 作者:行者123 更新时间:2023-12-01 19:37:08 25 4
gpt4 key购买 nike

我有一个公共(public) MVC 5 网站,使用防伪 token 。每天都会以“防伪 cookie token 和表单字段 token 不匹配”的形式记录大量错误,并且以“所需的防伪 cookie“__RequestVerificationToken”不匹配”的形式记录少量错误。存在。”。

该问题不可重现,不同的人在不同的时间在不同的页面上会发生该问题。关闭浏览器可以解决问题 - 有时只需使用“后退”按钮并重试即可解决问题。

  • 由于该网站适用于绝大多数用户,我可以排除 Controller 中缺少 ValidateAntiForgeryToken 属性,同样,我可以排除 View 中缺少或重复的 @Html.AntiForgeryToken() 代码。

  • 该网站在单个服务器上运行,因此我可以排除 web.config 中的不同机器 key (无论如何,我都尝试过使用或不使用此设置来运行该网站)。

  • 应用程序池设置为每天晚上重新启动,并且应用程序池上有大量空闲资源服务器,因此我可以排除应用程序池重新启动和使 session 失效的可能性(特别是因为这没有记录在事件日志或其他任何地方)。

  • 我很少遇到这个问题 - 我肯定启用了 cookie,因此我可以排除禁用 cookie 的可能性。我还可以排除 JavaScript 被禁用的可能性,因为用户只能在没有 JS 的情况下进入网站,并且在超出此范围的页面上会出现错误。

  • 我已经禁用了所有缓存,设置了 nocache、nostore 等。这似乎减少了问题的发生,但它仍然存在(由于各种其他原因,我不得不重新启用缓存)。

还有哪些其他选择需要考虑?

我对此感到非常沮丧,我正在考虑关闭防伪保护并导致全局安全性的削弱。

最佳答案

确保 Controller 和表单中都具有 AntiForgery 属性。

如果您正在执行ajax post,也许您可​​以发送RequestValidationToken作为参数。

$('input[name=__RequestVerificationToken]').val()

也可能有人攻击您的网站或使用一些机器人来获取内容或发布表单。

关于asp.net-mvc - MVC防伪 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26919080/

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