【发布时间】:2015-09-09 22:47:22
【问题描述】:
Content Security Policy specification says
frame-ancestors 指令废弃了 X-Frame-Options 标头。如果资源同时具有这两种策略,则应该强制执行 frame-ancestors 策略,而应该忽略 X-Frame-Options 策略。
因此,据我了解,如果 Content-Security-Policy 和 X-Frame-Options 标头都存在,则应忽略 X-Frame-Options。
我有一个带有两个标头的网络应用程序,看起来 Firefox 38 忽略了 Content-Security-Policy 标头并改用 X-Frame-Options 标头。
我的示例标题是:
Content-Security-Policy:frame-ancestors 'self' local.com *.local.com
X-Frame-Options:Allow-From http://local.com
我希望从 local.com 和所有子域访问我的框架。 Local.com 只是一个例子。如果X-Frame-Options 标头存在,那么它只允许http://local.com,但如果我删除它,那么Firefox 使用Content-Security-Policy 标头并且适用于域和子域。
这是否意味着 Firefox 没有实现这部分?或者它只是太新的规范,Firefox 还没有实现它?还有其他方法可以强制使用Content-Security-Policy 标头吗?
我知道 Chrome 可以正常使用 Content-Security-Policy,而 IE 只能使用 X-Frame-Options,但看起来我无法合并这两个标题,因为 Firefox 的工作方式不正确。
一种可能的方法是只为 IE 发送 X-Frame-Options,为所有其他发送 Content-Security-Policy,但有更好的方法吗?
谢谢!
【问题讨论】:
标签: security firefox frame content-security-policy x-frame-options