我正在尝试通过一些CDN加载一些css和脚本以改善加载时间,但我收到内容安全策略问题,但是经过相当长的时间阅读它并尝试不同的策略它仍然给我的同样的错误。
目前我的政策是这样的 -
<meta http-equiv="Content-Security-Policy" content="default-src 'self' https://code.jquery.com/ https://cdnjs.cloudflare.com/ https://maxcdn.bootstrapcdn.com/">
根据我的理解,这意味着我可以从网站本身加载任何内容和3个网址E.G for maxcdn我应该能够加载https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js
我确实尝试过非常简单且不被使用的政策
<meta http-equiv="Content-Security-Policy" content="default-src *">
但这并没有改变任何事情。
我得到的错误是 -
拒绝加载脚本“https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js”,因为它违反了以下内容安全策略指令:“default-src'self'”。请注意,'script-src'未明确设置,因此'default-src'用作后备。
它试图加载的脚本(我会在我开始工作后做后退) -
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
crossorigin="anonymous"></script>
我在chrome(55.0.2883.87)和Edge。
进行了测试从错误消息中看,它好像没有采用我的策略,而是使用浏览器设置的默认策略?
任何帮助都会非常感激:)
答案 0 :(得分:1)
当我使用您提问中包含的元标记提供的CSP对其进行测试时,脚本会毫无问题地加载。
我能够通过使用HTTP标头包含冲突的CSP来重现该问题。
真正的HTTP标头将胜过元标记。
您需要对服务器端代码或HTTP服务器配置进行更改,而不是对文档进行更改。