我在angularjs的资产文件夹中有两个脚本。我使用https://hash.online-convert.com/sha384-generator.在我的本地主机中,一切正常。但在服务器中,只有IE可以工作,但firefox和chrome告诉我们hash和内容不匹配。以下是如何包含文件的示例:
<script src="assets/scripts/jquery-3.1.1.slim.min.js" integrity="sha384-aL/wpCLJCv6t5sBNGKKvqcvD4HI7ELd0TsuutAmgCJcNpe0y7D5ECI62DIOy5Xyl" crossorigin="anonymous"></script>
API是用JavaSpring实现的,并且还添加了这个安全头:
.addHeaderWriter(new StaticHeadersWriter("X-Content-Security-Policy","script-src 'self'"))
为什么firefox和chrome不能使用Web服务器中的完整性哈希进行正确验证?我是不是错过了什么?
不要这样做。我们最终在脚本所在的位置使用了angular cli,但在"script":标记下。以及用angular cli 1.5+加标签构建它——subsouce integrity