内容安全策略 - 确定被阻止资源的来源

Content Security Policy - Determine source of blocked resource

在 Firefox 中我收到以下错误:

Content Security Policy: The page’s settings blocked the loading of a resource at data: (“media-src”).

我不确定为什么会出现此错误,因为我没有托管任何视频或音频标签。

<add name="Content-Security-Policy" value="default-src 'self'; connect-src 'self'; font-src 'self'; frame-src 'self'; img-src 'self'; media-src 'self'; object-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';"/>

如何在 Firefox 中找到被阻止资源的来源?

知道为什么当网站没有外部资源时会发生这种情况吗?


解决方案

我需要包含 data: 属性。

media-src 'self' data:;

调试CSP的基本方法:

  1. 违规报告(report-uri 指令)可以提供完整信息。
  2. Chrome 的控制台比 Firefoxes 提供更多信息。 Chrome 在控制台中显示被阻止 Url(Firefox - 在某些情况下也是如此)。
  3. SecurityPolicyViolationEvent 提供与违规报告相同的信息(如果您熟悉 JavaScript)。

详细信息how to debug CSP