handlebar.min.js 中的不安全评估

问题描述 投票:0回答:1

未捕获的 EvalError:拒绝将字符串计算为 JavaScript,因为“unsafe-eval”不是以下内容安全策略指令中允许的脚本源:“script-src 'unsafe-inline'”。

我在使用 HTTP 标头加载handlebar.min.js 时遇到错误,Content-Security-Policy 为 script-src 'self' 'unsafe-inline'。

我不想在 script-src 中使用“unsafe-eval”,其中handlebar.min.js 需要 unsafe-eval 才能继续

似乎js使用了以下函数,需要unsafe-eval才能运行

>> f(Function.call,k)

>> Function.apply(this,["fn","props","container","depth0","data","blockParams","depths",this.decorators.merge()])

>> Function.apply(this,f))

我使用的是最新版本的js(版本4.7.8)

https://s3.amazonaws.com/builds.handlebarsjs.com/handlebars.min-v4.7.8.js

提供 HTTP 标头、Content-Security-Policy 作为 script-src 'self' 'unsafe-inline' 'unsafe-eval' 后,它就可以工作了。但我需要在这里删除 unsafe-eval

handlebars.js content-security-policy unsafe-eval script-src unsafe-inline
1个回答
0
投票

重新检查车把安装。如果未安装,请安装车把

npm install -g handlebars

也不要进行运行时编译,而是进行预预编译

handlebars template.hbs -f template.js

您可以暂时放松您的 CSP。然而,由于安全风险,这不应该在生产中完成

Content-Security-Policy: script-src 'self' 'unsafe-inline' 'unsafe-eval';
© www.soinside.com 2019 - 2024. All rights reserved.