Wordpress 内容安全策略问题
Posted
技术标签:
【中文标题】Wordpress 内容安全策略问题【英文标题】:Wordpress Content Security Policy Problem 【发布时间】:2021-09-28 22:37:09 【问题描述】:我们的网站基于 WordPress 工具设计并发布在 Azure 网络服务上。我们的目标是使用谷歌分析来检查流量。由于这个事实,我们页面的标题部分添加了google分析标签,导致以下错误:
拒绝加载脚本“https://www.googletagmanager.com/gtag/js?id=??”因为它违反了以下内容安全策略指令:“script-src 'self' 'unsafe-eval' 'unsafe-inline' *.msecnd.net *.google.com *.gstatic.com”。请注意,'script-src-elem' 没有显式设置,因此 'script-src' 用作备用。
我了解违反内容安全政策是主要问题。因此,我在标题中添加了元(Content-Security-Policy: script-src 'unsafe-inline') 但问题并没有消失。我将不胜感激。
【问题讨论】:
【参考方案1】:由于您违反了内容安全政策 (CSP),因此您已经在页面上发布了第一个 CSP。 通过元标记(甚至通过第二个 HTTP 标头)添加第二个 CSP 不会解决问题,因为所有源都应该通过两个 CSP 才能被允许。
因此,您必须将第一个 CSP 中的阻止源 (https://www.googletagmanager.com
) 添加到 script-src 'self' 'unsafe-eval' 'unsafe-inline' *.msecnd.net *.google.com *.gstatic.com;
。
检查您的 WP 是否安装了一些插件来管理 CSP,或者 CSP 是否发布在 .htaccess
文件中。
由于您在script-src
中有'unsafe-eval' 'unsafe-inline'
,因此您在使用 Google 跟踪代码管理器 (GTM) 时应该没有问题。
无论如何,您可以check CSP for your GTM-XXXXXX ID - GTM 会加载哪些附加脚本以及在您的特定情况下需要哪些令牌。
【讨论】:
感谢您的回复。您对第一个 CSP 有什么想法。是我添加的 CSP 还是导致问题的 CSP,并且似乎是自动添加的? 我的意思是自动添加的 CSP。默认情况下,您的 WP 已经发布了一些 CSP - 即使没有添加元标记,此 CSP 也会导致违规。这就是为什么元标记不能按预期工作的原因。你可以检查这个“默认CSP”是否存在,教程是here。 我检查并在我的 http 响应中得到以下 CSP: Content-Security-Policy: default-src 'unsafe-inline' data: https: blob:; script-src 'self' 'unsafe-eval' 'unsafe-inline' *.msecnd.net *.google.com *.gstatic.com;这是主要问题吗?我试图在 Kudo 的 wp-admin 目录中找到 .htaccess 文件,但它不存在。正常吗? 是的,这是主要问题。script-src 'self' 'unsafe-eval' 'unsafe-inline' *.msecnd.net *.google.com *.gstatic.com;
被提及为违反 CSP 的原因。 WP 中的 CSP 也可以通过header()
func 在 php 代码中公开。您必须找到此 CSP 的发布位置并在此处添加 https://www.googletagmanager.com
。
CSP也可以发布在Azure config以上是关于Wordpress 内容安全策略问题的主要内容,如果未能解决你的问题,请参考以下文章
Security ❀ CSP Bypass 内容安全策略绕过
Security ❀ CSP Bypass 内容安全策略绕过