我该如何在CSP中使用angular-material?

3
我们的内容安全策略不允许在样式中使用unsafe-inline
当我尝试在我们的应用程序中使用angular-material时,它无法正常工作(缺少样式),并且我在DevTools中记录了很多错误。据我所知,这是由于动态生成的CSS被注入到页面中所致。
我已经包含了ngCsp,但对此问题没有明显影响。
1个回答

2
根据 AngularJS Material 的文档,解决方案必须是:
angular
.module("app", ['ngMaterial'])
.config(['$mdThemingProvider', function (themeProv) {
    themeProv.setNonce('randomString')
}])

将随机数添加为主题样式标签的属性。设置一个值可以使用CSP策略,而不需要使用unsafe-inline指令。

这段代码有效,但尚未为这个style标签添加一个nonce属性,我发现它被angularjs添加了:<style type="text/css">@charset "UTF-8";[ng:cloak],[ng-cloak]...</style> - Christiaan Westerbeek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接