相关疑难解决方法(0)

如何使Google跟踪代码管理器和内容安全政策共存?

内容安全-政策(CSP)头的目的是保护你免受恶意资源注入应用程序在你的web应用程序.为简单起见,您可以为所有图像,脚本,样式等提供允许的域来源的白名单.

与此同时,营销团队正在使用Google跟踪代码管理器(GTM)来管理代码.原理是从页面收集信息,将它们发送到GTM并将这些数据用作变量来生成标签,模板化JS/HTML和这些变量的混合.

问题是这些标签中的大多数都包含javascript,用于向跟踪器,广告服务器或任何合作伙伴发送非常具体的数据.让我们假设我的营销团队意识到安全风险,并且不会包含恶意脚本.

有没有办法知道哪些域是由GTM导入的,所以它们可以自动添加到我的CSP上?

javascript security web content-security-policy google-tag-manager

12
推荐指数
1
解决办法
2911
查看次数

有没有办法让内容安全策略 2 与 Google 标签管理器一起使用?

我在服务器的响应中添加了 Content-Security-Policy 标头,但是当 Google 标签管理器 (GTM) 注入自定义 HTML 标签时,浏览器会抛出错误。

CSP3 有“strict-dynamic”,它似乎是为 GTM 定制的,但目前只有 Chrome 支持它,而 CSP3 是一个工作草案。

我编写了代码来通过 GTM API 获取自定义 HTML 标签,希望我可以获取脚本的哈希值并将它们添加到标题中,但我发现 API 提供的 JavaScript 与 GTM 注入到 DOM 中的内容不匹配,因为 GTM 在注入脚本之前会缩小/混淆脚本。

现在我想知道是否有可能,只是可能,有一种方法可以告诉 GTM 向它注入的每个脚本添加一个随机数,但我找不到任何文档来支持这种希望/幻想。

有没有人遇到过这个问题,并找到了解决这个问题的方法?

(我不能像这里提到的那样从脚本中提取主机 -如何让 Google 标签管理器和内容安全策略共存? - 因为我们营销团队添加的自定义 HTML 标签是带有非空主体的标签,而不是只是带有源属性的标签,没有正文。)

content-security-policy google-tag-manager

5
推荐指数
0
解决办法
444
查看次数

将随机数添加到脚本标签

我想向动态构造的脚本标记添加一个随机数。下面的代码不会向生成的脚本标签添加任何随机数。有人知道如何添加随机数吗?

var _wss = document.createElement('script');
_wss.nonce = 'random-string';
_wss.type = 'text/javascript';
_wss.charset = 'utf-8';
_wss.async = true;
_wss.src = "url";
var __wss = document.getElementsByTagName('script')[0];
__wss.parentNode.insertBefore(_wss, __wss);
Run Code Online (Sandbox Code Playgroud)

结果是:

<script type="text/javascript" charset="utf-8" async src="url"></script>
Run Code Online (Sandbox Code Playgroud)

预期结果:

<script nonce="random-string" type="text/javascript" charset="utf-8" async src="url"></script>
Run Code Online (Sandbox Code Playgroud)

谢谢!

javascript nonce

4
推荐指数
1
解决办法
9972
查看次数