【问题标题】:Can the "x-requested-with" http header be spoofed?可以欺骗“x-requested-with”http 标头吗?
【发布时间】:2010-10-12 00:27:13
【问题描述】:

我的研究表明,只有 Host、Referer 和 User-Agent 标头可以被欺骗。 (source)

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

【问题讨论】:

    标签: security http


    【解决方案1】:

    它可以被使用curl 或浏览器扩展的人欺骗。

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

    【讨论】:

      【解决方案2】:

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

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

      现在从实际的角度来看会发生什么:您对堆栈(传输、网络、链接...)的操作越往下,更改数据就越困难,因为所需的工具更可能不可用首先给你,并且需要系统修改(例如,如果你有兴趣,你可以重新编译一个 linux 内核来搞乱以太网/IP 堆栈)。

      谈到 HTTP,那是应用层,做任何你想做的事都变得非常容易。您会发现大量工具可以让您生成任何自定义 HTTP 请求,从非常基本的网络工具(nc、telnet...)到更高级的工具(cUrl、Fiddler...)。

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

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

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

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

          【讨论】:

          • 总结一下,我显然无法继续解决我面临的问题,但是今天经过一些重大(重大!)重构后,我设法实现了一个更加安全的系统。谢谢大家。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-07-27
          • 1970-01-01
          • 2013-07-02
          • 2012-09-01
          • 1970-01-01
          相关资源
          最近更新 更多