Google 分析内容安全政策
Google Analytics Content Security Policy
我有内容安全策略:
default-src 'none';
style-src 'self';
script-src 'self' https://www.google-analytics.com;
img-src 'self' https://www.google-analytics.com;
connect-src 'self';
在我的页面上,我已将内联 GA 代码放入异步脚本中:
<script src="/javascript/ga.js" async></script>
这会导致 CSP 错误:
Refused to load the script 'data:application/javascript;base64,KGZ1bmN0aW9uKCkgewoJLy8gaHR0cHM6Ly9kZXZl…07Cgl9OwoJZ2EucmVtb3ZlID0gbm9vcGZuOwoJd2luZG93W2dhTmFtZV0gPSBnYTsKfSkoKTs=' because it violates the following Content Security Policy directive: "script-src 'self' https://www.google-analytics.com".
有没有办法从 JS 文件提供这个脚本,如果没有,我需要如何更改 CSP?
请参阅并点赞。
这是由 uBlock Origin 引起的,这是因为 data
网址未列入白名单:
script-src data:;
这样做没有意义,因为如果不受信任的数据在您的应用程序中的任何位置用作 URL,或者如果攻击者可以注入使用此类 URL 的标签,这可能会使您的应用程序容易受到攻击。这当然取决于注入点和允许的字符。
当然,您应该将任何用户输入的 URL 列入白名单(例如,确保它们以 http://
或 https://
开头),但是由于 CSP 是纵深防御措施,您可能不需要太想削弱了
结果是您通过这样做削弱了 CSP,以防止触发 CSP 报告或错误。
Google Analytics 与 CSP 兼容。 OP 看到的 base64 编码 data:
blob 正在被 uBlock Origin 扩展注入。要验证,请禁用 it/try 隐身模式。 IIRC,这是由于扩展中的 "experimental/unbreak" 设置。
请抵制在 script-src
中将 data:
列入白名单的诱惑。这将使该策略对 XSS 缓解完全无用,因为攻击者只需注入 <script src="data:text/javascript,alert(1)"></script>
即可执行 Javascript.
我有内容安全策略:
default-src 'none';
style-src 'self';
script-src 'self' https://www.google-analytics.com;
img-src 'self' https://www.google-analytics.com;
connect-src 'self';
在我的页面上,我已将内联 GA 代码放入异步脚本中:
<script src="/javascript/ga.js" async></script>
这会导致 CSP 错误:
Refused to load the script 'data:application/javascript;base64,KGZ1bmN0aW9uKCkgewoJLy8gaHR0cHM6Ly9kZXZl…07Cgl9OwoJZ2EucmVtb3ZlID0gbm9vcGZuOwoJd2luZG93W2dhTmFtZV0gPSBnYTsKfSkoKTs=' because it violates the following Content Security Policy directive: "script-src 'self' https://www.google-analytics.com".
有没有办法从 JS 文件提供这个脚本,如果没有,我需要如何更改 CSP?
请参阅
这是由 uBlock Origin 引起的,这是因为 data
网址未列入白名单:
script-src data:;
这样做没有意义,因为如果不受信任的数据在您的应用程序中的任何位置用作 URL,或者如果攻击者可以注入使用此类 URL 的标签,这可能会使您的应用程序容易受到攻击。这当然取决于注入点和允许的字符。
当然,您应该将任何用户输入的 URL 列入白名单(例如,确保它们以 http://
或 https://
开头),但是由于 CSP 是纵深防御措施,您可能不需要太想削弱了
结果是您通过这样做削弱了 CSP,以防止触发 CSP 报告或错误。
Google Analytics 与 CSP 兼容。 OP 看到的 base64 编码 data:
blob 正在被 uBlock Origin 扩展注入。要验证,请禁用 it/try 隐身模式。 IIRC,这是由于扩展中的 "experimental/unbreak" 设置。
请抵制在 script-src
中将 data:
列入白名单的诱惑。这将使该策略对 XSS 缓解完全无用,因为攻击者只需注入 <script src="data:text/javascript,alert(1)"></script>
即可执行 Javascript.