AngularJS ng-csp 指令
AngularJSs ng-csp 指令用于修改 AngularJS 的安全策略
如果使用了 ng-csp 指令, AngularJS 将不会执行eval 函数,这样就无法注入内联样式
设置 ng-csp 指令为 no-unsafe-eval 将阻止 AngularJS 执行 eval 函数,但允许注入内联样式
设置 ng-csp 指令为 no-inline-style , 将阻止 AngularJS 注入内联样式,但允许 执行 eval 函数
如果开发 Google Chrome 扩展或 Windows 应用 ng-csp 指令是必须的
注意: ng-csp 指令不会影响 JavaScript,但会修改 AngularJS 的工作方式,这就意味着: 我们仍然可以编写 eval 函数, 且也可以正常执行, 但是 AngularJS 不能执行它自己的 eval 函数
如果采用兼容模式,会降低 30% 的性能
语法
<element ng-csp="no-unsafe-eval | no-inline-style"></element>
参数值
值 | 描述 |
---|---|
no-unsafe-evalno-inline-style | 值可设置为空,意味着 eval 和 内联样式都不被允许 可以设置其中一个值 也可以同时设置两个值使用分号隔开,但这与留空的效果是一样的 |
范例
修改 AngularJS 中关于 "eval" 的行为方式及内联样式
<body ng-app="" ng-csp>...</body>