如何在Firefox和其他浏览器中使用frame-src和child-src?

时间:2015-05-04 06:10:37

标签: firefox content-security-policy

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,这似乎有效。但是,我现在想知道两者之间是否存在任何冲突可能性。推测支持child-src的浏览器会忽略frame-src?这有保证吗?

1 个答案:

答案 0 :(得分:40)

更新: 2017年1月:

停止使用child-src并再次开始使用frame-src

为了制造更多的混淆,CSP Level 3已经不推荐frame-src并且实际上重新指定它是实现这一目标的首选方式。虽然仍然支持child-src,但再次首选frame-src

旧帖子

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

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

开发者控制台警告不重要,仅仅是信息性的。我建议你现在忽略它,因为从现在起一年你可能会看到一个人说frame-src已被弃用。

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

CSP 2级支持:

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