X-Frame选项设为“DENY DENY”

时间:2017-03-08 15:26:21

标签: security header http-headers same-origin-policy x-frame-options

在某些Web应用程序中,我注意到有一些选项设置为X-Frame选项标题,如

X-Frame-Options:DENY DENY

(DENY选项应该被错误地添加两次)。

在这种情况下,浏览器是否会服从这样的标题,因为它正在服从

X-Frame-Options:DENY。

或者通过将“DENY DENY”视为无意义来消除此标题选项毫无意义

如果它是顺从的话,

等场景会发生什么

X-Frame-Options:DENY SAMEORIGIN

1 个答案:

答案 0 :(得分:1)

浏览器处理X-Frame-Options: DENY DENY就好像它只是X-Frame-Options: DENY

Safari之前had a bug that caused it to ignore X-Frame-Options如果它有重复值,Chrome会继承the same bug。 Firefox之前还有had pretty much the same bug

但是他们已经被修复了:他们的行为与给出一次的价值相同。

  

如果它是顺从的话,

等场景会发生什么      

X-Frame-Options: DENY SAMEORIGIN

对于这种情况,what Mozilla ended up implementing(以及最终关注的Safari和Chrome)是:

  

使用限制性最强的政策......如果框架情况违反其中任何一项,则阻止加载

因此,X-Frame-Options: DENY SAMEORIGIN的浏览器行为为DENY(限制性最强)。

所以,遗憾的是,如果标题有多个值,则没有权威规范指出所需行为是什么 - 因为the X-Frame-Options spec, RFC 7034实际上并未说明要求是什么 - 实际上,当前的Safari / Chrome / Firefox行为是预期的行为。不确定IE / Edge的功能,但如果它与Safari / Chrome / Firefox不同,那么这也是一个需要在IE / Edge中修复的错误。