我希望这个答案很简单。
我正在使用“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?任何见解都将不胜感激!
答案 0 :(得分:1)
是的,最好的选择是添加长主机列表,但不要删除CSP!
根据您的政策,删除CSP意味着以下内容:
通常情况下,您需要允许内联脚本/版本,但内容安全策略仍然非常有效。
您还可以将报头的报表形式与report-uri结合使用,以便收集白名单所需的可能位置列表。