拒绝执行内联脚本,因为它违反了以下CSP,Chrome扩展程序

时间:2019-02-15 14:14:33

标签: javascript google-analytics content-security-policy

我们正在尝试在Chrome扩展程序中实施Google Analytics(分析)。这些是我们执行的步骤:

我们的ip_address已编辑为:

manifest.json

还有我们的"Content-Security-Policy": "default-src 'self'; script-src 'nonce-4AEemGb0xJptoIGFP3Nd'",

index.html

我们尝试使用hash,nonce和insafe内联,但是都给出了以下错误代码:

enter image description here

我没主意了。

1 个答案:

答案 0 :(得分:1)

Google提供了一个tutorial on adding GA to Chrome extensions

  

安装跟踪代码

     

标准Google Analytics(分析)跟踪代码段提取文件   如果当前页面已加载,则从受SSL保护的网址中命名为ga.js   使用https://协议。 Chrome扩展程序和应用程序可能   仅使用受ga.js受SSL保护的版本。载入ga.js   Chrome的默认“内容安全性”不允许使用不安全的HTTP   政策。这以及Chrome扩展程序托管在   chrome-extension://模式,需要对   通常的跟踪代码片段,以直接从{{1}   https://ssl.google-analytics.com/ga.js而非默认值   位置。

     

以下是异步跟踪API的修改后的代码段(   修改后的行以粗体显示):

ga.js
     

您还需要确保您的扩展程序有权访问加载   通过放宽默认的内容安全策略来获得资源。政策   manifest.json中的定义可能类似于:

(function() {
  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  ga.src = 'https://ssl.google-analytics.com/ga.js';
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
     

这是一个加载异步页面的弹出页面(popup.html)   通过外部JavaScript文件(popup.js)跟踪代码并跟踪   单页视图:

{
  ...,
  "content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'",
  ...
}
     
<!DOCTYPE html>
<html>
  <head>
    ...
    <script src="popup.js"></script>
  </head>
  <body>
    ...
  </body>
</html>