这个 CSP 错误让我发疯
This CSP errors drives me crazy
编辑了这个问题,因为它变得非常混乱,我试图将所有事实放在一起:
- 我有两个网站,托管在与外部托管服务提供商相同的服务器上。两者均未设置 CSP!
- 我的主站点没有遇到任何问题,开发站点使用来自外部的动画 css...
- 问题是浏览器控制台中有关拒绝加载脚本的错误和 CSS。
- 发现错误后,我开始排查,但越来越不清楚。
- 当我将 CSP header 放入 HTAccess 文件时,它确实在浏览器控制台中作为阻止内容的原因被提及。
- 一旦我的 CSP 比“default-src 'self' 'unsafe-inline' 限制更少,它就会回到后者。
- 当我完全删除 HTAccess 中的 CSP 行时,浏览器和外部策略评估器提到找到一个 csp“default-src 'self' 'unsafe-inline'。在生产网站上他们没有.
- 我将 Joomla 用作 CMS,并且不知道在 HTAccess 文件、索引 php-file 或服务器上设置 CSP 的任何其他地方。服务器可以排除,因为我的其他网站也在那里,index.php 文件和 htaccessfile 我可以自己控制。
- 最奇怪的是,如图所示,浏览器似乎同时执行这两项操作。请注意,第一行和第三行提到 style-src-elem 未设置,而第二行提到与同一指令冲突。
这是我的 htaccess 代码:
Header always set Content-Security-Policy "Default-src 'self' https://cdnjs.cloudflare.com/; script-src 'self' 'unsafe-inline' ; style-src 'self' 'unsafe-inline' ; style-src-elem 'self' 'unsafe-inline' https://cdnjs.cloudflare.com/ "
我知道 "Unsafe-inline" 不是我想要的,但我想先修复错误,然后再修复其余部分。
这是来自 index.php:
的部分代码
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Inline icons to use -->
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.4.1/css/brands.css" integrity="sha384-Px1uYmw7+bCkOsNAiAV5nxGKJ0Ixn5nChyW8lCK1Li1ic9nbO5pC/iXaq27X5ENt" crossorigin="anonymous">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.4.1/css/solid.css" integrity="sha384-osqezT+30O6N/vsMqwW8Ch6wKlMofqueuia2H7fePy42uC05rm1G+BUPSd2iBSJL" crossorigin="anonymous">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.4.1/css/fontawesome.css" integrity="sha384-BzCy2fixOYd0HObpx3GMefNqdbA7Qjcc91RgYeDjrHTIEXqiF00jKvgQG0+zY/7I" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.0.0/animate.min.css" ntegrity="sha256-HtCCUh9Hkh//8U1OwcbD8epVEUdBvuI8wj1KtqMhNkI=" crossorigin="anonymous"/>
<script src="/libraries/google/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"></script>
<script src="/libraries/google/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
</head>
所以,请在我发疯之前帮助我...
解决了!!它在我的 cookiehint 插件中。
已将其关闭,现在可以正常使用了。
编辑了这个问题,因为它变得非常混乱,我试图将所有事实放在一起:
- 我有两个网站,托管在与外部托管服务提供商相同的服务器上。两者均未设置 CSP!
- 我的主站点没有遇到任何问题,开发站点使用来自外部的动画 css...
- 问题是浏览器控制台中有关拒绝加载脚本的错误和 CSS。
- 发现错误后,我开始排查,但越来越不清楚。
- 当我将 CSP header 放入 HTAccess 文件时,它确实在浏览器控制台中作为阻止内容的原因被提及。
- 一旦我的 CSP 比“default-src 'self' 'unsafe-inline' 限制更少,它就会回到后者。
- 当我完全删除 HTAccess 中的 CSP 行时,浏览器和外部策略评估器提到找到一个 csp“default-src 'self' 'unsafe-inline'。在生产网站上他们没有.
- 我将 Joomla 用作 CMS,并且不知道在 HTAccess 文件、索引 php-file 或服务器上设置 CSP 的任何其他地方。服务器可以排除,因为我的其他网站也在那里,index.php 文件和 htaccessfile 我可以自己控制。
- 最奇怪的是,如图所示,浏览器似乎同时执行这两项操作。请注意,第一行和第三行提到 style-src-elem 未设置,而第二行提到与同一指令冲突。
这是我的 htaccess 代码:
Header always set Content-Security-Policy "Default-src 'self' https://cdnjs.cloudflare.com/; script-src 'self' 'unsafe-inline' ; style-src 'self' 'unsafe-inline' ; style-src-elem 'self' 'unsafe-inline' https://cdnjs.cloudflare.com/ "
我知道 "Unsafe-inline" 不是我想要的,但我想先修复错误,然后再修复其余部分。
这是来自 index.php:
的部分代码 <head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Inline icons to use -->
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.4.1/css/brands.css" integrity="sha384-Px1uYmw7+bCkOsNAiAV5nxGKJ0Ixn5nChyW8lCK1Li1ic9nbO5pC/iXaq27X5ENt" crossorigin="anonymous">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.4.1/css/solid.css" integrity="sha384-osqezT+30O6N/vsMqwW8Ch6wKlMofqueuia2H7fePy42uC05rm1G+BUPSd2iBSJL" crossorigin="anonymous">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.4.1/css/fontawesome.css" integrity="sha384-BzCy2fixOYd0HObpx3GMefNqdbA7Qjcc91RgYeDjrHTIEXqiF00jKvgQG0+zY/7I" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.0.0/animate.min.css" ntegrity="sha256-HtCCUh9Hkh//8U1OwcbD8epVEUdBvuI8wj1KtqMhNkI=" crossorigin="anonymous"/>
<script src="/libraries/google/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"></script>
<script src="/libraries/google/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"></script>
</head>
所以,请在我发疯之前帮助我...
解决了!!它在我的 cookiehint 插件中。
已将其关闭,现在可以正常使用了。