我希望有一个简单的答案。
我正在使用“fancybox”工具在页面上嵌入来自 Vimeo 的视频。Fancybox 本质上创建了一个 iFrame 并嵌入了 Vimeo 播放器。它适用于所有浏览器——直到我打开内容安全策略。然后 ID 工作(因为它没有实现 CSP),但 Chrome 和 Firefox 只是挂起显示的“正在加载”图像。
我试过这个 CSP:
<add header="Content-Security-Policy" value="default-src 'self'; media-src 'self' http://player.vimeo.com; frame-src 'self' http://player.vimeo.com; " />
<add header="X-Content-Security-Policy" value="default-src 'self'; media-src 'self' http://player.vimeo.com; frame-src 'self' http://player.vimeo.com; " />
<add header="X-WebKit-CSP" value="default-src 'self'; media-src 'self' http://player.vimeo.com; frame-src 'self' http://player.vimeo.com; " />
当然,我的想法是我允许媒体和我的 iframe 都来自 vimeo。但它不起作用。有谁知道为什么?
更新:我删除了仅显示视频的页面的 CSP,并使用 Google 的开发人员工具查看了内容。我发现 Vimeo 从其他 Vimeo 子域、vimeocdn.com、conviva.com、lphbs.com 甚至亚马逊的 aws 中引入了大量其他内容。所以 - 如果您使用 Vimeo(和 YouTube?),您要么有很长的外部站点列表,要么只是不使用 CSP?任何见解将不胜感激!