我正在从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中定义的内容安全策略是:
add_header Content-Security-Policy "default-src 'self' https: data: 'unsafe-inline' 'unsafe-eval';" always;
因为我已经指定了'unsafe-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>
发布于 2018-11-03 13:03:32
您不能同时使用unsafe-inline
和nonces。一旦向CSP中添加了一个nonce,浏览器就会忽略unsafe-inline
指令。
如果您没有自己添加当前,那么您就不能完全控制您的CSP,因为您的一个依赖项正在添加一个与您的依赖项合并或更糟的是覆盖您的依赖项。使用浏览器开发工具查看您的标题,看看这些标题是否与您自己的CSP相对应。你会发现他们没有。
事实上,使用unsafe-inline
作为脚本源首先否定了拥有CSP的全部意义,因此解决这个问题的最好方法是重构您的软件以使用非CSP,然后在CSP中添加您自己的名称。
https://stackoverflow.com/questions/53122309
复制相似问题