相关疑难解决方法(0)

不使用eval/new函数的JavaScript模板库

使用的Google Chrome扩展程序manifest_version: 2限制使用evalnew Function.我检查的所有JavaScript模板库(mustachejs,underscorejs,jQuery模板,hoganjs等)都使用new Function.有没有相当成熟和支持不使用?

有关安全限制的信息.

javascript templates eval google-chrome-extension

11
推荐指数
2
解决办法
3282
查看次数

CSP安全的ES6模板文字

是否有模板引擎将以ES6模板文字(例如"string ${var}")的样式解析模板而不违反脚本评估的内容安全策略(CSP)限制?

对剧本评价CSP限制阻止eval,new Function,setTimeout(string)setInterval(string).

有许多模板引擎,可以提供或进行修改,以提供类似ES6风格模板文字,如John Resig的的MicroTemplates,lodash _.template和DoT.js.但是所有人似乎都违反了CSP new Function.

如果var可以是不受限制的Javascript,它在某些方面会很方便,但由于明显的原因,这可能是不可能的.但是我需要能够根据需要修改引擎以格式化输出.

在这种情况下,性能不是问题,并且预编译模板不是一种选择.其他人讨论了预编译.

作为附加限制,内容是文本 - 而不是HTML.我不认为面向DOM的模板引擎如Knockout或PURE不会有效地工作.

我的第一个想法是从mustache.js开始并从那里修改它(即改变mustache.tags = ['${', '}']DIY解决方案,但我会感谢任何有关该主题的想法,因为似乎缺乏关于CSP和模板的讨论.

javascript content-security-policy ecmascript-6 template-strings

6
推荐指数
1
解决办法
631
查看次数