我正在做一个网络应用程序测试,发现多个 x-frame-options 标头条目存在一些漏洞。哪些浏览器容易受到多个 x-frame-options 的攻击?
Multiple x-frame-options 标头条目可能受到哪些攻击?点击劫持似乎是一种困难的方法,因为这对于较新的浏览器是不可能的。
根据RFC7034 [1],允许设置多个具有相同名称的消息头。当存在这样的消息头时,它们通常被连接起来(Firefox)并且浏览器(客户端)形成单个消息头,因为这是 RFC 允许的。
可能存在具有相同字段名称的多个消息头字段
在消息中当且仅当该标头的整个字段值
字段被定义为逗号分隔的列表[即#(values)]。它必须
可以将多个标头字段合并为一个
“字段名称:字段值”对,不改变语义
消息,通过将每个后续字段值附加到第一个字段值,每个
用逗号分隔。
对于消息头 X-FRAME-OPTIONS,只有这 3 个值被识别为有效; ”DENY", "同源" and "允许来自"。这些值是互斥的,这意味着只有这些值应该出现,并且标头中只能出现其中一个。
假设服务器设置了 2 个同名的消息头。
HTTP/1.1 200 好
服务器:nginx/1.11.3
日期:2017 年 5 月 24 日星期三 04:31:29 GMT
内容类型:text/html;字符集=UTF-8
内容长度:5870
连接:保持活动状态
X 帧选项:拒绝
X-内容类型选项:nosniff
X-XSS-保护:1;模式=块
设置 Cookie:JSESSIONID=9F18D25951F107BE4C528CD787A3FE2F;路径=/;安全的;仅HTTP
最后修改时间:2017 年 2 月 2 日星期四 22:41:36 GMT
ETag:W/“5870-1486075296000”
变化:接受编码
X 框架选项:SAMEORIGIN
严格传输安全:max-age=31536000;包含子域
X-内容类型选项:nosniff
X-XSS-保护:1;模式=块
请注意,服务器响应 2X 框架选项消息头
X 框架选项:拒绝
X 框架选项:SAMEORIGIN
在 Firefox(不仅仅是 Firefox)中,这将被解释为X-FRAME-OPTIONS:“拒绝,同源”由浏览器引擎。尽管 RFC 允许串联,但由于这些标头值是互斥的,因此浏览器会尝试解释否认,同源作为一个单一元素,它会导致反点击劫持措施失败。
这是一篇不错的博客 [2],它进一步解释了这一点,[3] 谈到了类似的问题。
[1] https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html
[2] https://blog.qualys.com/securitylabs/2015/10/20/clickjacking-a-common-implementation-mistake-that-can-put-your-websites-in-danger https://blog.qualys.com/securitylabs/2015/10/20/clickjacking-a-common-implementation-mistake-that-can-put-your-websites-in-danger
[3] https://wordpress.org/support/topic/multiple-x-frame-options-headers-with-conflicting-values-sameorigin-deny/ https://wordpress.org/support/topic/multiple-x-frame-options-headers-with-conflicting-values-sameorigin-deny/
希望您会发现此信息有用。 :)
Cheers,
米琳达.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)