如何在火狐等浏览器中使用frame-src和child-src?

How to use frame-src and child-src in Firefox and other browsers?

MDN page on Content Security Policy directives 声明 frame-src 已弃用,应使用 child-src。但是,当我尝试使用 child-src

时,Firefox 37 给出了以下错误消息
Content Security Policy: Couldn't process unknown directive 'child-src' <unknown>

没有记录这种明显缺乏支持的情况(据我所知),这令人沮丧。是否有任何地方记录了浏览器支持?

目前,除了 child-src 之外,我还在使用 frame-src,这似乎可以工作。但是,我现在想知道两者之间是否存在冲突的可能性。大概frame-src会被支持child-src的浏览器忽略吧?可以保证吗?

更新: 2017 年 1 月:

停止使用 child-src 并重新开始使用 frame-src

为了制造更多的混乱,CSP Level 3 取消了 frame-src 并且实际上重新指定它作为实现此目的的首选方式。虽然仍然支持 child-src frame-src 再次成为首选。


旧post

frame-src 已弃用,但它最近才在 CSP 级别 2 中被弃用,并非所有浏览器都符合最新版本的规范。

目前获得最大浏览器兼容性的最佳方法是包含具有相同值的 child-srcframe-src。仅支持原始 CSP 规范的浏览器将使用 frame-src,而较新的浏览器将使用 child-src.

该开发人员控制台警告无关紧要,仅供参考。我建议您暂时忽略它,因为一年后您很可能会看到有人说 frame-src 已被弃用。

此时,我确保在需要时使用这两者,并打算在 2017 年 1 月停止提供 frame-src

CSP 2 级支持:

  • Firefox - Pending
  • Chrome - 40+
  • 歌剧 - 27+
  • Microsoft Edge - Pending
  • Safari - 10+