假设有以下情况:
"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的后备。
我尝试过的另一种方法是:
(正如here所讨论的)
"Content-Security-Policy" value="
default-src 'self'
script-src 'self' 'unsafe-inline' 'strict-dynamic' *.myhost.com http: https:;
@Scripts.Render("~/bundles/myScripts");这永远不会加载我的本地脚本,由于严格动态,它忽略了白名单,因此MVC通过Scripts.Render输出的任何东西都不会加载。
我知道内联脚本并不理想,但它现在是无法避免的。我有99%的把握,有一篇文章讨论了这个问题,其中详细介绍了什么是最适合跨浏览器支持的(例如,Chrome忽略了不安全的内联,但它存在于IE中),但我找不到拯救我生命的东西。
有什么建议吗?
谢谢。
发布于 2019-09-17 22:05:50
https://stackoverflow.com/questions/57960633
复制相似问题