Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使Angular2与限制性内容安全策略(CSP)配合使用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我不能使基本的Angular2(final)应用程序与限制性CSP一起使用。 lang.js一个不安全的eval@L_607_2@, zone.js有两个@L_607_2@。你能提供一个解决方案吗?

使用Angular CLI进行复制

我创建了一个GitHub repository.你也可以按照下面的说明。

使用最后的Angular CLI与webpack 1.0.0-beta.15和新的应用程序创建与下面的说明。

ng new csp-test

在index.html中插入定义以下限制性内容安全策略的元标记

default-src 'none';script-src 'self';style-src 'self';font-src 'self';img-src 'self' data:;connect-src 'self'

可以使用以下命令。

cd csp-test/src
sed -i $'s/<base href="\/">/<base href="\/"><Meta http-equiv="Content-Security-Policy" content="default-src \'none\';script-src \'self\';style-src \'self\';font-src \'self\';img-src \'self\' data:;connect-src \'self\'">/' index.html

然后服务于应用程序。

cd ..
ng serve

Access http://localhost:4200/页面不加载,因为脚本被CSP阻止。

@L_607_2@

lang.js

lang.js:335 Uncaught EvalError: Refused to evaluate a String as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self'".

与源代码

335: return new (Function.bind.apply(Function,[void 0].concat(fnArgNames.concat(fnBody))))().apply(void 0,fnArgValues);

zone.js

zone.js:344 Unhandled Promise rejection: Refused to evaluate a String as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self'".
 ; Zone: <root> ; Task: Promise.then ; Value: EvalError: Refused to evaluate a String as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self'".

zone.js:346 Error: Uncaught (in promisE): EvalError: Refused to evaluate a String as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self'".(…)

与源代码

343: if (rejection) {
344:     console.error('Unhandled Promise rejection:',rejection instanceof Error ? rejection.message : rejection,'; Zone:',e.zone.name,'; Task:',e.task && e.task.source,'; Value:',rejection,rejection instanceof Error ? rejection.stack : undefined);
345: }
346: console.error(E);
@H_262_43@
@H_262_43@
使用脱机模板编译器应该解决这个问题。

http://www.syntaxsuccess.com/viewarticle/offline-compilation-in-angular-2.0
https://github.com/angular/angular/issues/1744

@H_262_43@

大佬总结

以上是大佬教程为你收集整理的使Angular2与限制性内容安全策略(CSP)配合使用全部内容,希望文章能够帮你解决使Angular2与限制性内容安全策略(CSP)配合使用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。