为了账号安全,请及时绑定邮箱和手机立即绑定

X-Requested-With标头有什么意义?

X-Requested-With标头有什么意义?

慕姐8265434 2019-07-23 10:41:36
X-Requested-With标头有什么意义?JQuery和其他框架添加以下标头:X-Requested-With:XMLHttpRequest为什么需要这个?为什么服务器要以不同于正常请求的方式处理AJAX请求?更新:我刚刚使用这个标题找到了一个真实的例子:https://core.spreedly.com/manual/payment-methods/adding-with-js。如果在没有AJAX的情况下请求支付处理器,它会在完成后重定向回原始网站。当使用AJAX请求时,不会进行重定向。
查看完整描述

3 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

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

跨域只允许以下标头:

  • 接受

  • 接受语言

  • 内容语言

  • 最后,事件ID

  • 内容类型

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

如果没有CORS,则无法添加X-Requested-With跨域XHR请求。

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

发现了新的Flash旁路

您可能希望将其与令牌结合使用,因为如果存在重定向步骤,则 OSX上的Safari上运行的Flash 可以设置此标头。它似乎也适用于Chrome,但现在已经过修复。此处更多详细信息,包括受影

OWASP推荐将其与Origin和Referer检查相结合

这种防御技术在跨站请求伪造的鲁棒防御部分4.3中有具体讨论。然而,早在2008年就已经记录了使用Flash的这种防御的绕过,并且最近在2015年由Mathias Karlsson在Vimeo中利用了CSRF漏洞。但是,我们认为Flash攻击无法欺骗Origin或Referer标头,因此通过检查它们,我们相信这种检查组合应该可以阻止Flash绕过CSRF攻击。(注意:如果有人可以确认或反驳这一信念,请告诉我们,以便我们更新此文章)

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

更新

写了一篇关于CORS,CSRF和X-Requested的更深入的博客文章- 在这里


查看完整回答
反对 回复 2019-07-23
  • 3 回答
  • 0 关注
  • 665 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信