【问题标题】:X-Frame-Options and Content-Security-Policy for frames in FirefoxFirefox 中框架的 X-Frame-Options 和 Content-Security-Policy
【发布时间】:2015-09-09 22:47:22
【问题描述】:

Content Security Policy specification says

frame-ancestors 指令废弃了 X-Frame-Options 标头。如果资源同时具有这两种策略,则应该强制执行 frame-ancestors 策略,而应该忽略 X-Frame-Options 策略。

因此,据我了解,如果 Content-Security-PolicyX-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


    【解决方案1】:

    frame-ancestors 仅出现在 CSP 级别 2 中(请参阅changelog),因此 Firefox 38 很可能尚未实现它。

    您可以通过查看 JavaScript 控制台很容易地验证这一点 - 浏览器将显示有关它不理解的每个 CSP 指令的警告。

    您也可以从 beta 频道下载 Firefox,看看它是否有所不同,但如果您只是想为生产网站构建一个可互操作的解决方案,显然它并没有多大帮助...

    【讨论】:

    猜你喜欢
    • 2017-03-15
    • 2019-06-25
    • 2023-03-19
    • 2013-05-03
    • 1970-01-01
    • 2021-06-02
    • 2019-09-05
    • 1970-01-01
    • 2013-01-13
    相关资源
    最近更新 更多