内容安全策略 - 不安全的内联和不安全的eval不能在moz和chrome中工作

时间:2018-01-11 16:20:43

标签: asp.net-mvc security iis

我有一个mvc Web应用程序,我已将内容安全策略配置为

<add name="Content-Security-Policy" value="default-src 'self';script-src 'self' 'unsafe-inline' 'unsafe-eval' ;style-src 'self' 'unsafe-inline' ;img-src 'self';font-src 'self'  ; "/>

适用于所有浏览器,包括IE,CHROME,MOZILLA。

我在cshtml页面中使用了大量的内联jquery / javascript代码。

但是我的安全团队无法保证我的网络应用程序的安全性,他们希望我们删除'unsafe-inline' 'unsafe-eval'

我删除unsafe-inline和unsafe-eval应用程序只能在IE中工作,但不能在chrome和mozilla中工作。如果没有“不安全 - 内联”'不安全评估',是否有任何工作可以实现上述目标

2 个答案:

答案 0 :(得分:0)

CSP(截至今天21/03/2018)未完全支持IE(此处提供更多信息https://caniuse.com/#search=csp)。
显然,您的应用程序不符合CSP,这就是为什么它不能在实现CSP的浏览器(如Chrome或Firefox)中运行。

答案 1 :(得分:0)

您可以尝试使用NWebSec库来支持您使MVC应用程序符合CSP标准。请参阅文档here

您可以借助NWebSec TagHelpers来使您的脚本CSP符合nonce。请参阅信息here

关于这个主题的好读物是here

您可以使用Rehan Saeed的ASP.Net MVC Boilerplate Template来了解CSP。它已经实现了NWebSec。