【问题标题】:Content security policy: source data内容安全策略:源数据
【发布时间】:2016-03-29 09:08:32
【问题描述】:

我正在设置Content security policy。我已经在仅报告模式下设置了基本规则以进行测试。

我不断收到有关被阻止脚本的报告,但来源仅为data

 "csp-report": {
        "blocked-uri": "data",
        "document-uri": "http://www.example.com/page.html",
        "original-policy": "default-src http://www.example.com ...
        "violated-directive": "script-src 'unsafe-inline' http://www.example.com http://www.google-analytics.com;"
    }

即使我与导致此报告的访问者使用相同的浏览器类型访问同一页面,我也无法重现该报告。从 CSP 文档中,我找不到任何关于名为 data 的源的信息。

页面http://www.example.com/page.html主要是静态html,但在<script>标签之间有谷歌分析脚本:

<script type="text/javascript">
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject'...
</script>

我网站的其他页面(包括首页)使用了相同的脚本。然而,只有页面 page.html 会生成这些关于被阻止 data 的报告。

这个被阻止的 uri data 是什么?是来自我网站的内容还是访问者浏览器尝试加载的外部内容?

【问题讨论】:

  • 也经常看到这些。怀疑浏览器扩展。真的很烦人,因为导致 CSP 报告中的大量噪音削弱了它们的用处:-(

标签: javascript http http-headers content-security-policy


【解决方案1】:

关于报告的快速问题:它们是发生在一个浏览器上还是所有浏览器上?

如果只有一个浏览器: script-srcblocked-uri: data 的冲突可能是来自插件的噪音。通过数据 URL 加载 javascript 的模式可能不是来自你。

如果所有浏览器: 如果您不使用该模式,那么您的库之一可能是。 Google 分析不使用该模式。

请参阅https://twitter.com/Scott_Helme/status/710164802925142017 进行快速讨论。

注意:允许script-src data: 是非常危险的,或者至少和'unsafe-inline' 一样危险。来源:http://webreflection.blogspot.com/2011/08/simulate-script-injection-via-data-uri.html

【讨论】:

  • 报告多为火狐浏览器及少数Chrome浏览器所致。但仅限于这些浏览器的某些用户。由于script-src data: 风险太大,我将避免允许它。 (希望尽快摆脱unsafe inline)。
  • 太好了!我看到你已经不允许评估。如果你想要一些关于删除内联脚本的提示,我在几年前写过:oreoshake.github.io/csp/2013/01/13/…
  • 我发现 Google Analytics 会导致 data-uri 阻止消息...我想知道是否有办法指定哪些来源可以做 data-uri 哪些不可以?
  • 没关系,我怀疑这是由这个异步下载脚本引起的:developers.google.com/analytics/devguides/collection/… 我会尝试不同的方法来加载 GA...
  • 其实是这样的:icompile.eladkarako.com/…——但它不像看起来那样。这不是由 Google 发送的...
猜你喜欢
  • 1970-01-01
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-07
  • 2021-01-11
  • 2016-06-22
  • 2014-07-26
相关资源
最近更新 更多