繁体   English   中英

如果声明了哈希,Chrome是否应该忽略unsafe-inline指令?

[英]Is Chrome supposed to ignore the unsafe-inline directive if a hash is declared?

给定以下内容:

"Content-Security-Policy" value="
     default-src 'none'; 
     script-src 'unsafe-eval' 'unsafe-inline' 'self' *.myhost.com 'sha256-myHash';

<script type="text/javascript" src="myScript.js"></script>
<script type="text/javascript" integrity='sha-256-myHash'>
     //some stuff
</script>

我希望除非提供了哈希,否则不会加载底部脚本。 我给人的印象是Chrome会忽略不安全的内联并查找哈希。 不安全的内联只是IE的后备。

我尝试的另一种方法是:

(如所讨论此处

"Content-Security-Policy" value="
             default-src 'self'
             script-src 'self' 'unsafe-inline' 'strict-dynamic' *.myhost.com http: https:;

@Scripts.Render("~/bundles/myScripts");

这永远不会加载我的本地脚本,由于严格的动态处理它会忽略白名单,因此任何MVC通过脚本吐出来的东西都不会加载。

我知道内联脚本不是理想的选择,但现在无法避免。 我99%肯定在某处有SO帖子对此进行了讨论,其中详细说明了对跨浏览器支持的最佳选择(例如,Chrome忽略不安全的内联但将其提供给IE),但我找不到能挽救生命的东西。

有指针吗?

谢谢。

如果存在的话,实际上是一个随机数,而不是哈希。

一些进一步的信息可以在这里找到:

https://csp.withgoogle.com/docs/strict-csp.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM