Google 标签管理器和内容安全策略

Google Tag Manager and Content Security Policy

我正在尝试在我的网站上实施内容安全政策。但是当我执行 script-src 时它给了我这个错误。

Refused to load the script 'https://www.googletagmanager.com/gtm.js?id=GTM-XXXXX' because it violates the following

我的内容安全政策是

Content-Security-Policy: script-src 'self' 'unsafe-eval' https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js https://www.google-analytics.com 'unsafe-eval' 'unsafe-inline' https://*.googletagmanager.com/gtm.js/  https://tagmanager.google.com/http://www.googleadservices.com/pagead/conversion_async.js https://*.google.com;
  1. 删除 https://*.googletagmanager.com/gtm.js/ 中的尾部斜杠,因为 CSP 认为它是一个文件夹,但实际上它是一个文件。更可靠的是只指定 https://*.googletagmanager.com 而没有 path/filename.

  2. https://tagmanager.google.com/http://www.googleadservices.com/pagead/conversion_async.js 之间插入一个 space 因为您指定的主机源不正确:https://tagmanager.google.com/http://www.googleadservices.com/pagead/conversion_async.js.

注 1:主机源 http://www.googleadservices.com/pagead/conversion_async.js 包含在 https://*.google.com 中(属于该模板)。

注释 2script-src 'unsafe-inline' 不能防止 XSS。考虑不在 script-src 指令中使用 'unsafe-inline'