当前位置: 首页 > 知识库问答 >
问题:

内联脚本违反内容安全策略

萧亦
2023-03-14

我正在从chargebee.com加载外部脚本,并在控制台中收到此错误消息:

[仅报告]拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script src'nonce VVZ V0c=''self'https://maps.googleapis.com https://domain.chargebeestatic.com http://dgkxwewtzsnml.cloudfront.net/static/app-static-assets/hp/hp-4.8.5/". 启用内联执行需要'unsafe inline'关键字、哈希('sjZUY=')或nonce('nonce-…')。

Nginx中定义的我的内容安全策略是:

add_header Content-Security-Policy "default-src 'self' https: data: 'unsafe-inline' 'unsafe-eval';" always;

因为我指定了'unsec-inline',所以我不确定为什么会出现这个错误。

更新:

在Safari控制台中单击iframe连接器时,我可以看到:

<!DOCTYPE>
<html>
<head>
  <title></title>

<script  nonce="Au5oDesccjEDNeeHfk=" >window.cb_hp_cdn_path="//dgkxetzsnml.cloudfront.net/static/app-static-assets/hp/hp-4.8.5/"</script>
</head>
<body>

</body>
<script  src="https://domain.chargebeestatic.com/api/internal/15346543/retrieve_init_info"  nonce="Au5oejEDNGKHHfk=" ></script>
<script type='text/javascript' src='//dgkxwewtzsnml.cloudfront.net/static/app-static-assets/hp/hp-4.8.5/javascripts/vendor.js'></script>

  <script type='text/javascript' src='//dgkxwewtzsnml.cloudfront.net/static/app-static-assets/hp/hp-4.8.5/javascripts/hp_connector.js'></script>

</html>

共有1个答案

颜修为
2023-03-14

您不能同时使用unsec-inline和nonces。一旦一个随机数被添加到你的CSP,unsec-inline指令将被浏览器忽略。

如果你自己没有添加nonce,那么你就不能完全控制你的CSP,因为你的一个依赖项正在添加一个要么与你的合并,要么更糟糕地覆盖你的依赖项。使用浏览器开发工具查看您的标题,看看实际发送的标题是否与您自己的CSP相对应。你会发现他们没有。

事实上,使用unsec-inline作为脚本源首先否定了拥有CSP的全部意义,所以解决这个问题的最佳方法是重构您的软件以使用nonces,然后添加您的拥有nonce到您的CSP。

 类似资料:
  • 在这里输入图像描述所以我是非常新的帕格,但它声称就像超文本标记语言,所以我使用它,当做以下事情: block head:在base.pug中,并在另一个页面中使用它,如:block append head:(并使用以下脚本和链接):block append head script(src=)https://api.mapbox.com/mapbox-gl-js/v0.54.0/mapbox-gl.

  • 当我将图像上传到我的web应用程序中时,它显示以下错误 拒绝加载图像'

  • 我正在尝试开发一个渐进式Web应用程序,它包括一个外部JavaScript、一个外部CSS、JQuery库以及清单和服务工作者。 我设置了内容安全策略来加载这些内容,并在localhost和Google Chrome上运行它。 这是我的超文本标记语言头: 我希望一切都能正常运行,但相反,我得到的错误与我的声明不符: 拒绝加载脚本的https://ajax.googleapis.com/ajax/l

  • 我正在学习将Cordova与jquery mobile结合使用,我有以下错误: 拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“默认src“self”数据:间隙:https://ssl.gstatic.com “不安全评估”。启用内联执行需要'unsafe inline'关键字、哈希('sha256-iacGaS9lJJpFDLww4DKQsrDPQ2lxppM2d2GGnzCeKkU=')

  • 问题内容: 当我尝试将我的应用程序部署到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