首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >内联脚本违反内容安全策略

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

Stack Overflow用户
提问于 2018-11-02 16:17:49
回答 1查看 10.3K关注 0票数 1

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

Report拒绝执行内联脚本,因为它违反了以下内容安全策略指令:" 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/“。要么是‘不安全-内联’关键字,要么是散列('sjZUY='),要么是“不安全-.”需要启用内联执行。

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

代码语言:javascript
运行
复制
add_header Content-Security-Policy "default-src 'self' https: data: 'unsafe-inline' 'unsafe-eval';" always;

因为我已经指定了'unsafe-inline',我不知道为什么会弹出这个错误。

更新:

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

代码语言:javascript
运行
复制
<!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>
EN

回答 1

Stack Overflow用户

发布于 2018-11-03 13:03:32

您不能同时使用unsafe-inline和nonces。一旦向CSP中添加了一个nonce,浏览器就会忽略unsafe-inline指令。

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

事实上,使用unsafe-inline作为脚本源首先否定了拥有CSP的全部意义,因此解决这个问题的最好方法是重构您的软件以使用非CSP,然后在CSP中添加您自己的名称。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53122309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档