如果我在我的角度应用程序上实现CSP 2.0,并且禁止来自script-src的不安全内联,那么ng-click和其他角度事件是否有效?我想CSP会阻止所有这些。
答案 0 :(得分:2)
AngularJS和Content-Security-Policy在ngCsp指令下有详细记录。以下是unsafe
规则对Angular的影响:
unsafe-eval
:此规则禁止应用使用eval
或Function(string)
生成的函数(以及其他内容)。 Angular利用了这一点 在$ parse服务中提供30%的速度提升 评估Angular表达式。
unsafe-inline
:此规则禁止应用将自定义样式注入文档。 Angular利用它来包含一些CSS 规则(例如ngCloak
和ngHide
)。使这些指令工作时 CSP规则阻止内联样式,您必须链接到 在您的HTML中手动angular-csp.css
。
具体而言ngClick使用AngularJS表达式......
<ANY
ng-click="expression">
...
</ANY>
...而AngularJS expression不需要eval。
Angular不使用JavaScript的
eval()
来计算表达式。 相反,Angular的$parse
服务处理这些表达式。