我正在尝试开发一个渐进式Web应用程序,它包括一个外部JavaScript、一个外部CSS、JQuery库以及清单和服务工作者。
我设置了内容安全策略来加载这些内容,并在localhost和Google Chrome上运行它。
这是我的超文本标记语言头:
<head>
<meta charset="UTF-8"/>
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline' https://*; manifest-src 'self'">
<script src="example.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<!-- <script src="jquery.min.js"></script> -->
<link rel="stylesheet" type="text/css" href="example.css">
<link rel="manifest" href="manifest.json">
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('sw.js').then(function(registration) {
console.log('Service worker successfully installed. Scope:', registration.scope);
}).catch(function(error) {
console.log('Service worker installation failed:', error);
});
}
</script>
<link rel="icon" href="../images/favicon.ico" type="image/x-icon" />
<title>xxx</title>
</head>
我希望一切都能正常运行,但相反,我得到的错误与我的声明不符:
拒绝加载脚本的https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js'因为它违反了以下内容安全策略指令:“script src'self'”。请注意,未显式设置“script src elem”,因此将“script src”用作回退。
拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script src‘self’”。启用内联执行需要'unsafe inline'关键字、哈希('xxx')或nonce('nonce-…')。
拒绝从“”加载清单http://localhost:7681/manifest.json'因为它违反了以下内容安全策略指令:“default src'none'”。请注意,“manifest src”未显式设置,因此“default src”用作回退。
即使我包含了'unsafe inline'关键字,启用了从https加载脚本,并且我没有声明“default src'none'”,所以我认为我遗漏了一些东西。什么阻止了我的脚本加载?
编辑
我了解出了什么问题:服务器运行在libwebsockets上,默认情况下,libwebsockets使用非常严格的内容安全策略。更改lws选项后,CSP指令将从HTML头正确加载。
此处指定了CSP指令的源。
引述上述来源:
站点地址可能包含可选的前导通配符(星号“*”)
但是,这仍然需要有效的站点地址。因此,https://*
不是有效的CSP源,因此被忽略。
要允许从所有https站点加载脚本,请执行以下操作:
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline' https:; manifest-src 'self'">
我正在从chargebee.com加载外部脚本,并在控制台中收到此错误消息: [仅报告]拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script src'nonce VVZ V0c=''self'https://maps.googleapis.com https://domain.chargebeestatic.com http://dgkxwewtzsnml.cloudfront.ne
问题内容: 当我尝试将我的应用程序部署到5.0.0以上的android系统的设备上时,我一直收到以下错误消息: 07-03 18:39:21.621:D / SystemWebChromeClient(9132):file:///android_asset/www/index.html:第0行:拒绝加载脚本“ http:// xxxxx ”,因为它违反了以下内容安全策略指令:“ script-sr
当我尝试将我的应用程序部署到Android系统高于5.0.0(Lollipop)的设备上时,我不断收到以下错误消息: 07-03 18:39:21.621:D/SystemWebChromeClient(9132):file:///android_asset/www/index.html: 第0行:拒绝加载脚本的http://xxxxx'因为它违反了以下内容安全策略指令:“script src's
有人能告诉我如何将CSP元标记添加到标题中吗?我尝试将不同的meta标记添加到我的头中,但CSP的错误更多 控制台错误堆栈
我尝试通过cryptojs库加密用户数据,并通过ajax发送到服务器,但控制台显示错误: 拒绝加载脚本'https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js',因为它违反了以下内容安全策略指令:脚本-src'自我'https://apis.google.com'不安全评估'。请注意,没有显式设置脚本-src-
当我将图像上传到我的web应用程序中时,它显示以下错误 拒绝加载图像'