【问题标题】:csrf and anti forgery token in MVC 2, dont want to validate ajax postMVC 2 中的 csrf 和防伪令牌,不想验证 ajax 帖子
【发布时间】:2012-05-08 10:44:53
【问题描述】:

我想使用 ValidateAntiForgeryToken 但是...我只想在操作上使用它 我定期发帖。而不是 ajax 与 json。因为通常攻击者会被跨域限制阻止。我的问题是这样的:

如果我有一个我知道我只调用在 AJAX 中发布 JSON 的操作,在这种情况下 antiforgerytoken 不起作用,所以我想确保请求真的是一个 ajax 请求,这意味着它真的来自我的网站,我如何在 ASP.Net MVC 2 中做到这一点?

所以我的总体想法是:将 ValidateAntiForgeryToken 属性放在所有带有常规帖子的操作上。并验证一个帖子确实是所有其他 acitons 中的 ajax 帖子

那么我怎样才能确保一个动作的帖子是真正的 AJAX 而不仅仅是一个普通的帖子?

谢谢

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-2 csrf


    【解决方案1】:

    您必须编写自己的 ValidateAntiForgeryTokenAttribute。

    我只会获取现有属性的来源并将其复制到您赢得的类中,然后对其进行修改,以便 OnAuthorization 方法检查“filterContext.RequestContext.HttpContext.Request.IsAjaxRequest”并仅在为 false 时执行 CSRF 验证.

    您还可以轻松地将 CSRF 令牌附加到您的 AJAX 请求中,我认为这将是解决您问题的更好方法

    【讨论】:

      猜你喜欢
      • 2014-01-23
      • 2019-06-09
      • 1970-01-01
      • 2019-07-19
      • 2015-03-12
      • 2018-05-10
      • 2016-10-25
      • 2021-06-09
      • 2015-01-11
      相关资源
      最近更新 更多