gpt4 book ai didi

asp.net-mvc - 响应中不存在 RequestVerificationToken cookie

转载 作者:行者123 更新时间:2023-12-03 12:25:49 24 4
gpt4 key购买 nike

我的 ASP.NET MVC 应用程序通过使用 ValidateAntiForgeryToken 属性并调用 Html.AntiForgeryToken 来编写具有 token 值的隐藏输入元素,并将 token 放入 cookie 中,从而防止 CSRF 攻击。

我的异常日志报告了 HttpAntiForgeryException 的出现,这些异常看起来像是从有效请求中触发的(Referrer 看起来是正确的)。导致异常的 Response 还在 Form 字段中包含 __RequestValidationToken,带有 token 值。但是,请求中缺少必要的 cookie,导致验证失败并抛出异常。

我在想为什么这个 cookie 丢失了,并提出了以下可能的原因:

  1. Cookie 集合已满领域。 ——如果是这样的话在这里我希望看到 20/50 的 cookies 在每个请求中(顺便说一句,所有用户代理是 IE7 和 IE8) 和不知何故,cookie 被丢弃了。我看到 3 到 23 个 cookie在各种事件中异常
  2. cookie 的数据限制已经过到达。 - 这不会发生。经过查看日志我可以看到cookie 收集量很小。
  3. 正在发回响应在可以添加 cookie 之前。 -不确定这个。手动在头部调用 Reponse.Flush导致异常说明cookie 集合无法修改回复发送后。
  4. ?

无奈之下,我求助于 SO 的人员,询问我可以调查的此丢失 cookie 的任何其他可能原因。

最佳答案

我遇到了完全相同的问题。我的内容是通过跨域 iframe 呈现的。根据Adam Young , IE 将自动阻止第三方 cookie,除非您在 header 中定义 P3P 策略。

我添加了代码以将 p3p 策略注入(inject) header ,并从我在 iframe 中使用的每个操作中调用它。到目前为止,我们还没有看到这个错误出现。我希望这个解决方案可以帮助其他人。

public static void SetP3PCompactPolicy()
{
HttpContext.Current.Response.AddHeader("p3p",
"CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");
}

我还定义了一个 machine key ,尽管我不确定是否有必要。

关于asp.net-mvc - 响应中不存在 RequestVerificationToken cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2107370/

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