我想使用ValidateAntiForgeryToken但是......我只想在动作上使用它 我经常发帖。而不是与json的ajax。因为跨域限制会定期阻止攻击者。我的问题是这样的:
如果我有一个动作我知道我只在AJAX中发布JSON并且在这种情况下antiforgerytoken不起作用,所以我想确保请求真的是一个ajax请求,这意味着它真的来自我的网站,我怎么能在ASP.Net MVC 2中做到这一点?
所以我的一般想法是:将ValidateAntiForgeryToken属性放在所有具有常规帖子的操作上。并确认帖子确实是所有其他活动中的ajax帖子
那么如何确保某个动作的帖子真的是AJAX而不仅仅是常规帖子呢?
感谢
答案 0 :(得分:0)
您必须编写自己的ValidateAntiForgeryTokenAttribute。
我只需要获取现有属性的源代码并将其复制到您的won类中然后修改它,以便OnAuthorization方法检查" filterContext.RequestContext.HttpContext.Request.IsAjaxRequest"并且仅在错误的情况下执行CSRF验证。
您还可以轻松地将CSRF令牌附加到您的AJAX请求中,我认为这将是您问题的更好解决方案