使用 underscore.js 时如何修复浏览器 CSP 错误
How do I remedy Browser CSP errors when using underscore.js
过去几年我一直在开发 Web 应用程序,最近通过添加内容安全策略使其更加安全。
我已经能够解决我发现的大部分问题,但我无法解决剩下的一个问题。每当 underscore.js 中出现模板时,CSP 都会抱怨一条错误消息,因为我相信它使用了一个禁忌;作为js代码"new Function(...)".
我在网上看到了其他的推荐,基本上是:
- 使用引擎预编译模板,例如Grunt-inline-template-compile 这对于内联模板字符串时很有用,我的都在标签中的实际 html 中,所以这不会没有激烈的内容移动是可能的。
- 切换到另一个模板引擎,这个选项会比以前的更有吸引力,但我担心它会破坏所有的下划线模板语法行,并且本身就是一个巨大的工作。
人们还知道其他选择吗?
尝试将您域中的脚本的 Content-Security-Policy
header 设置为 unsafe-eval
作为临时解决方法。 http://content-security-policy.com/
然后尽快转移到模板引擎,例如 Handlebars。您可以将模板放在单独的 html 文件中,并将它们编译成 javascript 作为构建的一部分。这使您在开发时很好地区分 html 和 js,但在生产版本
中为您的用户在浏览器中的性能良好
过去几年我一直在开发 Web 应用程序,最近通过添加内容安全策略使其更加安全。
我已经能够解决我发现的大部分问题,但我无法解决剩下的一个问题。每当 underscore.js 中出现模板时,CSP 都会抱怨一条错误消息,因为我相信它使用了一个禁忌;作为js代码"new Function(...)".
我在网上看到了其他的推荐,基本上是:
- 使用引擎预编译模板,例如Grunt-inline-template-compile 这对于内联模板字符串时很有用,我的都在标签中的实际 html 中,所以这不会没有激烈的内容移动是可能的。
- 切换到另一个模板引擎,这个选项会比以前的更有吸引力,但我担心它会破坏所有的下划线模板语法行,并且本身就是一个巨大的工作。
人们还知道其他选择吗?
尝试将您域中的脚本的 Content-Security-Policy
header 设置为 unsafe-eval
作为临时解决方法。 http://content-security-policy.com/
然后尽快转移到模板引擎,例如 Handlebars。您可以将模板放在单独的 html 文件中,并将它们编译成 javascript 作为构建的一部分。这使您在开发时很好地区分 html 和 js,但在生产版本