我的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。
答案 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-policies和https://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'
,因此其强制执行会阻止连接。影响是将其他策略添加到策略列表中 强制执行只能进一步限制受保护的功能 资源。