Tom*_*len 15 javascript google-analytics http-headers 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';
Run Code Online (Sandbox Code Playgroud)
在我的页面上,我将内联GA代码放入异步脚本中:
<script src="/javascript/ga.js" async></script>
Run Code Online (Sandbox Code Playgroud)
这会导致CSP错误:
拒绝加载脚本"的数据:应用程序/ JavaScript的; BASE64,KGZ1bmN0aW9uKCkgewoJLy8gaHR0cHM6Ly9kZXZl ... 07Cgl9OwoJZ2EucmVtb3ZlID0gbm9vcGZuOwoJd2luZG93W2dhTmFtZV0gPSBnYTsKfSkoKTs =",因为它违反了以下内容安全政策指令:"脚本的src'自我’ https://www.google-analytics.com ".
有没有办法从JS文件提供此脚本,如果不是,我将如何更改CSP?
Mic*_*olo 11
Google Analytics与CSP兼容.base64编码的data:blob OP正在被uBlock Origin扩展注入.要验证,请将其停用/尝试隐身.IIRC,这是由于扩展中的"实验/未破坏"设置.
请抵制诱惑,白名单data:在script-src.这会使策略对XSS缓解完全无用,因为攻击者只能注入<script src="data:text/javascript,alert(1)"></script>执行Javascript.
请参阅Michele Spagnuolo的回答和upvote.
这是由uBlock Origin引起的,因为dataURL不是列入白名单的:
script-src data:;
Run Code Online (Sandbox Code Playgroud)
这样做没有意义,因为如果不受信任的数据在您的应用程序中的任何位置用作URL,或者攻击者可以注入使用此类URL的标记,则可能会使您的应用程序容易受到攻击.这当然取决于注入点和允许的字符.
当然,您应该将任何用户输入的URL列入白名单(例如,确保它们以http://或开头https://),但是由于CSP是纵深防御措施,您可能不希望将其削弱太多.
结果是你通过这样做来削弱你的CSP,以防止CSP报告或错误被触发.
| 归档时间: |
|
| 查看次数: |
1991 次 |
| 最近记录: |