可以欺骗“x-requested-with”http标头?

时间:2009-03-08 09:14:16

标签: security http

我的研究表明,只有Host,Referer和User-Agent标头才会被欺骗。 (source

这是一个正确的假设吗?我正在建设的网站的安全性可能要求“x-requested-with”不能伪造。这远非理想,但可能是我唯一的途径。

4 个答案:

答案 0 :(得分:17)

  

我正在建设的网站的安全性   可能要求“x-requested-with”   不能伪造

HTTP中的任何内容都可能被欺骗。 “欺骗性”的程度很难确定。使用我想要的任何标题值来制作请求是相当简单的。

如果这是你唯一的选择,那就这样吧,但我不想使用依赖它的网站来做任何重要事情。

答案 1 :(得分:10)

每个标头都可以被欺骗。任何以x-开头的标头都是非标准的。

答案 2 :(得分:1)

刚刚遇到这个问题,寻找其他的东西,这是我的答案:

要记住的一般安全原则:任何数据都可以更改。

现在从实际的角度来看,会发生什么:你在堆栈上运行的进一步下降(传输,网络,链接...),改变数据的难度越大,因为所需的工具更可能不可用首先,您需要进行系统修改(例如,如果您感兴趣,可以重新编译Linux内核以搞乱以太网/ IP堆栈。)

谈论HTTP,这是应用程序层,它很容易做任何你想做的事情。你会发现很多工具可以让你从非常基本的网络工具(nc,telnet ......)生成任何自定义HTTP请求到更高级的工具(cUrl,Fiddler ......)。

因此,仅仅存在x-requested-with标头不能被视为正确的安全性。

虽然它可能对低安全级别的情况有用,但它绝对不会阻止攻击者愿意通过它。请记住安全性的第一个原则:没有难以穿透的系统,它必须足够安全,以使破坏尝试不值得。

答案 3 :(得分:0)

使用curl或浏览器扩展程序的人可能会欺骗。

但是,如果它被用作反CSRF措施(see here),那么它就不容易被欺骗,因为攻击者不是浏览器的攻击者。为了欺骗它,你需要一个Flash漏洞利用,如答案中所解释的那样,或者CORS在目标服务器上设置了宽松的权限。