在 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的基本方法:
report-uri
指令)可以提供完整信息。详细信息如何调试CSP。
FWIW,我在 Firefox ESR 方面也遇到同样的问题(但 Chrome 没有)。每个页面(标题中只有适当的 CSP),即使正文为空(因此为 0 字节长),也会导致 FF 控制台中出现以下丑陋的警告:
Content-Security-Policy: The page’s settings blocked the loading of a resource at data: (“default-src”).
卸载
NoScript
扩展程序后,该消息就会消失。
禁用 TAB 上的
NoScript
还不够,当我从 FF 完全卸载扩展时它才消失。因此,NoScript
扩展 - 可悲的是 - 将此警告注入到页面中,这意味着NoScript
在触发向网站的 CSP 报告时会泄露您的隐私,从而暴露其存在,可用于进行指纹识别(这只发生在不过,具有非常严格的 CSP 的页面)。
当我尝试调试此问题时,收到的 CSP 报告根本不是很有结论:
{
"csp-report": {
"blocked-uri": "data",
"disposition": "enforce",
"document-uri": "https://survey.example.net/",
"effective-directive": "media-src",
"original-policy": "default-src 'none'; base-uri 'none'; form-action 'self'; script-src 'self'; img-src 'self'; style-src 'self'; connect-src 'self' https://forum.example.net/; frame-ancestors 'none'; report-uri https://login.example.net/csp",
"referrer": "",
"status-code": 200,
"violated-directive": "media-src"
}
}
备注:
example
。uBlock Origin
会停止发送 CSP 报告NoScript
安装了NoScript
是对抗恶意网站和 JavaScript 的救星
ublock-origin
结合起来以保护您的隐私