内容安全策略:源数据

时间:2016-03-29 09:08:32

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

我正在设置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>代码之间有Google分析脚本:

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

我的网站的其他页面(包括首页)使用相同的脚本。但只有页面page.html会生成有关已屏蔽data的报告。

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

1 个答案:

答案 0 :(得分:0)

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

如果只有一个浏览器: script-src blocked-uri: data次违规可能是插件产生的噪音。通过数据网址加载javascript的模式可能不是来自你。

如果所有浏览器都 如果您没有使用该模式,也许您的某个库是。 Google Analytics不使用该模式。

有关快速讨论,请参阅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