内容安全策略 - 不安全的内联和不安全的评估在 Moz 和 Chrome 中不起作用



我有一个 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(中运行的原因。

最新更新