在某些Web应用程序中,我注意到有一些选项设置为X-Frame选项标题,如
X-Frame-Options:DENY DENY
(DENY选项应该被错误地添加两次)。
在这种情况下,浏览器是否会服从这样的标题,因为它正在服从
X-Frame-Options:DENY。
或者通过将“DENY DENY”视为无意义来消除此标题选项毫无意义
如果它是顺从的话,
等场景会发生什么X-Frame-Options:DENY SAMEORIGIN
答案 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中修复的错误。