【发布时间】:2010-10-12 00:27:13
【问题描述】:
我的研究表明,只有 Host、Referer 和 User-Agent 标头可以被欺骗。 (source)
这是一个正确的假设吗?我正在构建的站点的安全性可能要求不能伪造“x-requested-with”。这远非理想,但可能是我唯一的途径。
【问题讨论】:
我的研究表明,只有 Host、Referer 和 User-Agent 标头可以被欺骗。 (source)
这是一个正确的假设吗?我正在构建的站点的安全性可能要求不能伪造“x-requested-with”。这远非理想,但可能是我唯一的途径。
【问题讨论】:
它可以被使用curl 或浏览器扩展的人欺骗。
但是,如果它被用作反 CSRF 措施(see here),那么它就不容易被欺骗,因为攻击者不是浏览器的人。要欺骗它,您将需要答案中解释的 Flash 漏洞利用,或者在目标服务器上设置 CORS 并使用宽松的权限。
【讨论】:
刚刚遇到这个问题,正在寻找其他东西,这是我的答案:
要牢记的一般安全原则:任何数据都可以更改。
现在从实际的角度来看会发生什么:您对堆栈(传输、网络、链接...)的操作越往下,更改数据就越困难,因为所需的工具更可能不可用首先给你,并且需要系统修改(例如,如果你有兴趣,你可以重新编译一个 linux 内核来搞乱以太网/IP 堆栈)。
谈到 HTTP,那是应用层,做任何你想做的事都变得非常容易。您会发现大量工具可以让您生成任何自定义 HTTP 请求,从非常基本的网络工具(nc、telnet...)到更高级的工具(cUrl、Fiddler...)。
因此,仅仅存在 x-requested-with 标头不能被视为适当的安全性。
虽然它可能对低安全级别的情况有用,但它绝对不会阻止愿意越过它的攻击者。记住安全性的第一条原则:没有系统是不可穿透的,它必须足够安全,才能使破坏尝试变得毫无价值。
【讨论】:
每个标题都可以被欺骗。任何以 x- 开头的标题都是非标准的。
【讨论】:
我正在构建的网站的安全性 可能需要“x-requested-with” 不能伪造
HTTP 中的任何内容都可能被欺骗。 “欺骗性”的水平很难确定。使用我想要的任何标头值来制作请求是相当简单的。
如果这是您唯一的选择,那就这样吧,但我不想使用依赖它来处理任何重要事情的网站。
【讨论】: