使Angular使用限制性内容安全策略(CSP)

尼古拉斯·亨内克斯(Nicolas Henneaux)

我无法使基本的Angular2(最终)应用程序与以下限制性CSP一起使用。

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

有一个不安全的-EVAL错误lang.js和两个zone.js您能提供解决方案吗?

重现Angular CLI的步骤

我已经创建了一个GitHub存储库您也可以按照以下说明进行操作。

将最后一个Angular CLI与Webpack 6.0.8一起使用,并使用以下说明创建新的应用程序。

ng new csp-test

index.htmlmeta标记中插入,以定义以下限制性内容安全策略。

<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'">

然后服务该应用程序。

ng serve

访问http:// localhost:4200 /,由于脚本被CSP阻止,因此无法加载该页面。

失误

Chrome中的错误

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);
尼古拉斯·亨内克斯(Nicolas Henneaux)

使用最新的Angular CLI版本(从1.0.0-beta.17开始)已解决了该问题。以下命令可为正在运行的应用程序提供服务,因为它包含了提前编译。

ng serve --prod

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用限制性内容安全策略将iframe注入页面

来自分类Dev

空白的Java安全策略文件是否具有限制性最强?

来自分类Dev

使用内容安全策略 (CSP) 的真正意义是什么?

来自分类Dev

Angular中的动态CSP(内容安全策略)connect-src

来自分类Dev

Internet Explorer的内容安全策略(CSP)解决方法

来自分类Dev

每个页面的内容安全策略(CSP)?

来自分类Dev

Google Adwords CSP(内容安全策略)img-src

来自分类Dev

标头CSP(内容安全策略)不正确

来自分类Dev

内容安全策略(CSP)阻止评估方法调用

来自分类Dev

CSP内容安全策略-我们为什么不使用它?

来自分类Dev

CSP内容安全策略-我们为什么不使用它?

来自分类Dev

内容安全策略停用

来自分类Dev

内容安全策略警告

来自分类Dev

如何使用元标记放宽内容安全策略

来自分类Dev

Safari中使用Braintree和Paypal的内容安全策略

来自分类Dev

(CSP)内容安全策略。处理从外部库添加的内联样式的方法

来自分类Dev

如何在yii2中添加用于Smartsupp聊天的内容安全策略(CSP)?

来自分类Dev

在限制性IT策略下安装cygwin的最佳策略?

来自分类Dev

内容安全策略春季安全

来自分类Dev

如何实施内容安全策略?

来自分类Dev

内容安全策略对象SRC Blob

来自分类Dev

自身子域的内容安全策略

来自分类Dev

什么是最大允许的内容安全策略?

来自分类Dev

内容安全策略+框架祖先

来自分类Dev

与Jekyll实施内容安全策略

来自分类Dev

如何“避免”内容安全策略?

来自分类Dev

XSS和内容安全策略

来自分类Dev

内容安全策略+框架祖先

来自分类Dev

内容安全策略:源数据

Related 相关文章

热门标签

归档