在没有指定CSP的情况下出现内容安全策略错误的可能原因是什么?



我的web应用程序无法从DigitalOcean Space加载静态资源,在浏览器控制台中抛出以下错误:

Content Security Policy: The page’s settings blocked the loading of a resource at https://somespace.digitaloceanspaces.com/static/css/mystyle.css (“style-src”).

我阅读了一些关于CSP的书籍,在这个资源中我发现了以下语句:

此警告消息意味着由于存在特定的CSP指令,资源未加载。

但是,我没有提供任何特定的CSP指令。我还提供了一个关于如何在HTML文档中包含CSS文件的简短片段:

<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="https://somespace.digitaloceanspaces.com/static/css/mystyle.css" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-TileColor" content="#ffffff">
</head>

是否有其他原因导致这个错误被抛出?什么是解决这个问题的方法,或者至少是调试这个问题的方法?

您需要首先检查您正在接收的响应头。Content-Security-Policy应该在这里定义。这个头包含配置信息。您可以在这里了解更多有关它们的信息:https://content-security-policy.com/

然后,您需要确定将该头文件添加到哪里。在我的例子中,它是通过旧的NGINX配置添加的。

我的响应头中既没有文档级CSP,也没有CSP。看起来(至少在我的Firefox上)当NoScript浏览器插件阻止脚本时,它会在开发人员控制台中显示为CSP错误。为有问题的页面启用脚本已解决此问题。

相关内容