【问题标题】:How do I remedy Browser CSP errors when using underscore.js使用 underscore.js 时如何纠正浏览器 CSP 错误
【发布时间】:2015-09-29 22:45:08
【问题描述】:

过去几年我一直在开发一个 Web 应用程序,最近通过添加内容安全策略使其更加安全。

我已经能够解决我发现的大部分问题,但我无法解决剩下的一个问题。每当在 underscore.js 中出现模板时,CSP 都会抱怨一条错误消息,因为我相信它使用了禁止;就是js代码“new Function(...)”。

我在网上看到过其他建议,基本上是:

  • 使用引擎预编译模板,例如Grunt-inline-template-compile 这对于当您将模板字符串内联时很有用,我的模板字符串都在标签中的实际html 中,因此如果没有大量内容移动,这是不可能的。
  • 切换到另一个模板引擎,这个选项会比以前更有吸引力,但我担心它会破坏所有下划线的模板语法行,并且本身就是一项巨大的工作。

还有其他人们知道的选择吗?

【问题讨论】:

    标签: javascript templates underscore.js content-security-policy underscore.js-templating


    【解决方案1】:

    尝试将您域中的脚本的 Content-Security-Policy 标头设置为 unsafe-eval 作为临时解决方法。 http://content-security-policy.com/ 然后尽快转移到 Handlebars 等模板引擎。您可以将模板放在单独的 html 文件中,并将它们编译为 javascript 作为构建的一部分。这为您在开发时很好地分离了 html 和 js,但在生产版本中为您的用户在浏览器中提供了良好的性能

    【讨论】:

    • 最终选择了这个选项。导出到车把有点麻烦,但最终效果很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    相关资源
    最近更新 更多