【问题标题】:Breeze JS errors with Content Security Policy带有内容安全策略的 Breeze JS 错误
【发布时间】:2017-11-04 02:59:46
【问题描述】:

使用 Breeze JS 和严格的内容安全策略,我收到错误 Refused to evaluate a string as JavaScript because 'unsafe-eval' is not a allowed source of script in the following Content Security Policy directive。

有没有办法像 AngularJS 处理 https://docs.angularjs.org/api/ng/directive/ngCsp 一样在不使用“unsafe-eval”的情况下进行回退?

【问题讨论】:

  • 你能告诉我,错误是从 Breeze 中的哪个位置引发的吗?
  • 函数 t(e) { var t = e.name.replace(/\W/g, "_"); return Function("return function" + t + "(){}")() } 返回行是它出错的地方。这就是格式化的缩小代码。

标签: breeze content-security-policy


【解决方案1】:

Breeze 使用Function(string) 为与实体同名的实体创建构造函数。这纯粹是为了使调试更容易,并不是必不可少的功能。

Breeze 的下一个版本应该可以移除对Function(string) 的依赖。同时,您可以使用以下方法修补您的版本:

function createEmptyCtor(type) {
    return function(){};
}

或如您在上面的评论中那样缩小:

function t(e) { return function(){}; }

【讨论】:

  • 仅供参考,这最终在微风客户端版本 2.0.0-alpha.18 中得到修复
猜你喜欢
  • 2018-12-29
  • 2018-01-09
  • 1970-01-01
  • 2015-09-17
  • 1970-01-01
  • 1970-01-01
  • 2018-04-27
  • 2016-11-12
  • 1970-01-01
相关资源
最近更新 更多