2

在某些Web应用程序我注意到有用于X-框架选项设置选项首像设置为“拒绝拒绝”

X框,选择X-框选项选项应该错误地添加了两次)。

在这种情况下,将在浏览器服从于这样报头,因为它是为服从

X框-选项:DENY。

否则将它排除考虑为无意义的这个头选项“拒绝拒绝”无意义

如果服从,会发生什么事的场景,如

X框选项:DENY SAMEORIGIN

回答

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中修复的bug。