如何解决.NET MVC 5中严格CSP网格视图集成的使用
由于严格的CSP合规性,我们需要替换我们的MVC5应用程序中使用的Kendo网格视图,我们正在寻找网格替代品,但很难找到严格的CSP合规性。任何人都可以帮忙并提出更换建议的网格。
解决方法
-
如果您想找到诸如Kendo UI之类的功能强大的程序,那是没有办法的,因为任何功能强大的库都将使用某些“ CSP-unsafe”构造。甚至Google跟踪代码管理器都要求“不安全内联”,在某些情况下还需要“不安全内嵌”。
-
某些“ CSP不安全”不是Kendo而是第三方JS库。例如,剑道使用的JSZip javascript库要求'unsafe-eval',但这是该lib的'麻烦',而不是剑道。任何其他GRid都将使用相同或相同的lib,并且没有人确保它们完全“ CSP安全”。已更新:详细的研究表明Kendo UI 确实使用了不安全的评估表达式,但是JSZip.js却没有。
在嵌入Kendo网格时,您可能还会自己编写一些“ CSP不安全”代码。
- 很遗憾,您没有披露您需要的“严格的CSP遵从性”。这大大减少了使您的问题得到详细解答的机会。
Content security Policy for Kendo UI Grid可能需要“不安全”:
-
'unsafe-inline',这是不可避免的。
-
'unsafe-inline',
由于内联事件处理程序,这很难通过简单的方法避免。但是这些不会出现在每个浏览器中,并且其中的一些锁没有视觉影响(需要对代码进行额外的研究)。已更新: Kendo UI本身不要使用不安全的-内联在脚本中。
在 -
'unsafe-eval',
这是可以避免的-只需删除用户模板中的“导出到Excel”按钮即可。这是不可避免的,Kendo UI使用许多Function()
构造,它们返回了'unsafe-eval'
style-src
指令中的script-src
指令中的script-src
指令中但是任何其他具有强大UI(当然<table>...</table>
和服务器端渲染除外)的Grid也会遇到相同的麻烦。
您仍然可以为Kendo UI拥有足够安全的CSP。 我还要写给JSZip开发人员(参考此线程),也许他们可以摆脱(请参见上面的更新)。new Function
构造。
将一个库更改为另一个库是在浪费大量时间,并且没有人保证将来该库将保持“严格的CSP遵从性”。
PS:我在重新设计Kendo UI后确实更新了一些细节。是我的错,对此感到抱歉。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。