对于<video src =“blob:...”>的Content-Security-Policy元使用什么值

时间:2017-03-22 19:19:58

标签: content-security-policy

我的https://my-site.com网站有一些类似以下内容的HTML:

<video src="blob:https://my-site.com/{some-guid}"></video>

在控制台中,我收到此错误:

  

拒绝加载来自&lt; blob的媒体:https://my-site.com/ {some-guid}&#39;   因为它违反了以下内容安全策略指令:   &#34; media-src *&#34;。

在我的head我有这个:

<meta http-equiv="Content-Security-Policy" content="media-src * blob:" />

我错过了什么?我甚至试过了#34;赶上所有&#34; (不是超级安全)价值default-src * 'unsafe-inline' 'unsafe-eval'无济于事。

使用Chrome。

1 个答案:

答案 0 :(得分:0)

消息显示正在应用的CSP指令只是media-src * - 而不是media-src * blob: - 似乎表明浏览器已经从Content-Security-Policy标题获得了更严格的策略meta元素中更宽松的政策。

因此,如果您的网站实际上已经提供了Content-Security-Policy标头,那么您需要更改其政策,以使用允许media-src的更宽松的blob:指令源。

您无法使用文档中使用Content-Security-Policy指定的更宽松的值覆盖更严格的meta标头值。请参阅https://w3c.github.io/webappsec-csp/#multiple-policieshttps://w3c.github.io/webappsec-csp/#meta-element

  

注意:将强制执行通过meta元素指定的策略   与受保护资源有效的任何其他策略无关   他们被指定的地方。强制执行多重的一般影响   策略在§8.1多策略的影响中描述。

     

8.1。多个政策的影响

     

在   XMLHttpRequest的行为似乎不清楚给定一个网站,   无论出于何种原因,都提供了以下HTTP标头:

Content-Security-Policy: default-src 'self' http://example.com http://example.net;
                         connect-src 'none';
Content-Security-Policy: connect-src http://example.com/;
                         script-src http://example.com/
     

是否允许与example.com建立连接?简短的回答是   不允许连接。

     

执行这两项政策意味着   一个潜在的连接必须通过两个未受损害的。甚至   虽然第二个政策允许这种联系,但第一个政策   包含connect-src 'none',因此其强制执行会阻止连接。

     

影响是将其他策略添加到策略列表中   强制执行只能进一步限制受保护的功能   资源。