使用Google Analytics(分析)时,我从Safari 13.1中收到以下错误,但从Chrome中却没有:
Refused to connect to https://www.google-analytics.com/j/collect?XYZ
because it does not appear in the connect-src directive of the Content Security Policy.
我的应用程序未尝试连接到www.google-analytics.com
,但从www.googletagmanager.com
下载了一个脚本,而该脚本又从www.google-analytics.com
下载了一个脚本。
我的CSP的配置如下:
script-src 'self' 'unsafe-eval' data: www.google-analytics.com www.googletagmanager.com www.google.com www.gstatic.com
connect-src 'self'
因此,正如Safari所说的,google-analytics
中没有connect-src
,但这似乎对Chrome来说不是问题。
我的CSP是否错误(并且Chrome过于宽容),或者这是Safari中的错误?
Safari是正确的。 Chrome is being too permissive:
HTTP内容安全性策略(CSP)脚本src指令指定了JavaScript的有效源。
请注意,此声明不合格。
Chrome也违反了CSP的其他规定。例如,blocked-uri
用于不同的来源requires that the URI path is stripped,但Chrome不能,而Safari可以。
目前,Safari似乎比Chrome更合规/严格,但是无论如何,您都应该使用更严格的浏览器,因为,实际上您别无选择...