2017-06-12 285 views
2

我已经在Visual Studio 2015专业版中创建了新的asp.net mvc 5项目 并且我添加了meta标签我的布局为内容安全策略 -拒绝应用内联样式,因为它违反了以下内容安全策略指令:“style-src'self'”modernizr

<meta http-equiv="content-security-policy" 
    content="default-src 'none'; script-src 'self'; 
    connect-src 'self'; img-src 'self'; style-src 'self';" /> 

现在,当我跑我的应用我获得以下的Chrome浏览器的控制台错误 -

拒绝,因为它违反了以下内容安全策略指令适用内嵌样式:“style-src'self'”。 “内联不安全”关键字,一个散列('sha256-CwE3Bg0VYQOIdNAkbB/Btdkhul49qZuwgNCMPgNY5zw =')或一个随机数('nonce -...')是启用内联执行所必需的。 Modernizr的-2.6.2.js:157

有6个错误的Modernizr的-2.6.2.js:157,一个是有关的脚本,即拒绝加载脚本本地主机

我不我认为我的项目中没有任何内联风格,为什么CSP拒绝应用错误?

回答

2

显然modernizr要么注入一个带有CSS属性的style元素,要么注入一些style属性;你可以通过改变你的CSP政策这个对付它:

<meta http-equiv="content-security-policy" 
    content="default-src 'none'; script-src 'self'; 
    connect-src 'self'; img-src 'self'; 
    style-src 'self' 'sha256-CwE3Bg0VYQOIdNAkbB/Btdkhul49qZuwgNCMPgNY5zw=';" /> 
+0

感谢@sideshowbarker,这正是我试图做的,是的,它解决了我的问题,但问题是我必须为所有的错误都这样做对于我的应用程序来说,这太差了将近50个错误,我必须复制每个散列并将其添加到相应的指令值,任何快捷方式都将非常有帮助。 – vishwajeetrkale

+0

如果modernizr注入所有内联的东西,而不是看起来像你的选择要么(a)添加所有这些哈希,(b)使用'不安全的内联'(但它基本上破坏了CSP的全部目的......)或c)不要使用modernizr – sideshowbarker

相关问题