我有一个 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代码。
但是我的安全团队未能通过 Web 应用程序的安全性,他们希望我们删除'unsafe-inline' 'unsafe-eval'
在我删除不安全的内联和不安全的评估应用程序后,只能在IE中工作,但在chrome和Mozilla中不起作用。 是否有任何解决方法可以在没有"不安全内联"的情况下实现上述目标 "不安全
可以尝试使用NWebSec
库在使 MVC 应用程序符合 CSP 的过程中为您提供支持。请参阅此处的文档。
您可以借助NWebSec TagHelpers
使脚本 CSP 符合随机数。请参阅此处的信息。
关于这个主题的好读在这里。
您可以使用 Rehan Saeed 的 ASP.Net MVC 样板模板来了解 CSP。它已经实现了NWebSec。
IE不完全支持CSP(截至今天21/03/2018((更多信息请点击此处 https://caniuse.com/#search=csp(。
显然,您的应用程序不符合CSP标准,这就是为什么它无法在实现CSP的浏览器(如Chrome或Firefox(中运行的原因。