X-Requested-With标头的含义是什么?

jQuery和其他框架添加以下标头:

X-Requested-With:XMLHttpRequest

为什么需要这个?为什么服务器要对AJAX请求与常规请求区别对待?

:我刚刚找到了一个使用此标头的真实示例:https : //core.spreedly.com/manual/payment-methods/adding-

with-js。如果要求付款处理器不使用AJAX,则完成后它将重定向回原始网站。如果使用AJAX请求,则不会进行重定向。

回答:

出于安全性的考虑,一个很好的理由-这可以防止CSRF攻击,因为未经服务器通过CORS的同意,无法将此标头添加到AJAX请求跨域中。

跨域仅允许以下标头:

  • 接受
  • 接受语言
  • 内容语言
  • 最后事件ID
  • 内容类型

任何其他原因都会导致在CORS支持的浏览器中发出“飞行前”请求。

没有CORS,就不可能添加X-Requested-With到跨域XHR请求。

如果服务器正在检查是否存在此标头,则它知道该请求不是来自尝试使用JavaScript代表用户提出请求的攻击者的域。这还会检查请求是否不是从常规HTML表单中发布的,如果不使用令牌,则很难确定该请求不是跨域的。(但是,尽管您将使旧的浏览器容易受到攻击,但是在支持的浏览器中可以选择检查Origin标头)。

回答:

您可能希望将其与令牌结合使用,因为如果有重定向步骤,则

OSX上Safari上运行的Flash

可以设置此标头。看来它也可以在Chrome上使用,但现在已得到修复。这里有更多详细信息,包括受影响的不同版本。

OWASP建议将其与原始和引荐检查结合使用:

此防御技术在“跨站点请求伪造的稳健防御”的第4.3节中专门讨论。但是,Mathias

Karlsson早在2008年和2015年就记录了使用Flash绕过这种防御的漏洞,以利用Vimeo中的CSRF漏洞。但是,我们认为Flash攻击无法欺骗Origin或Referer标头,因此通过同时检查这两个标头,我们认为这种检查组合应可防止Flash绕过CSRF攻击。(注意:如果有人可以确认或反驳这种信念,请告诉我们,以便我们更新本文)

但是,由于已经讨论的原因,检查Origin可能很棘手。

回答:

在此处撰写有关CORS,CSRF和X-Requested-

With的更深入的博客文章。

以上是 X-Requested-With标头的含义是什么? 的全部内容, 来源链接: utcz.com/qa/413401.html

回到顶部