繁体   English   中英

删除受限 CSP 的不安全评估时应用程序未运行

[英]App not running up on removing unsafe-eval for restricted CSP

描述

我的应用程序限制了 CSP,不允许对脚本进行不安全评估。 在没有不安全评估的情况下添加 Content-Security-Policy header 我的应用程序无法加载。

最小复制

我正在通过 nginx 代理配置文件传递这个限制性 CSP header。

add_header Content-Security-Policy "default-src 'self';  script-src 'self' 'nonce-$request_id'

我已经删除了在加载应用程序时导致此问题的不安全评估

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'

您可以直接在 index.html 文件中添加此 CSP 以重现此错误

<meta http-equiv="Content-Security-Policy" content= "default-src 'self' 'nonce-$request_id' ; script-src 'self' 'nonce-$request_id' ; style-src 'self' 'unsafe-inline'; frame-ancestors 'self';">

我在我的项目中使用启用了 aot 的 angular 版本 9。

异常或错误

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' 'nonce-17279687d574ebf5358210888e9e9395'".

at new Function (<anonymous>)
at b.N (vendor.c63b596435f6d085789d.js:1)
at b.c (vendor.c63b596435f6d085789d.js:1)
at Object.D [as resolveRef] (vendor.c63b596435f6d085789d.js:1)
at Object.t.exports [as code] (vendor.c63b596435f6d085789d.js:1)
at Object.t.exports [as validate] (vendor.c63b596435f6d085789d.js:1)
at Object.t.exports [as code] (vendor.c63b596435f6d085789d.js:1)
at t.exports (vendor.c63b596435f6d085789d.js:1)
at N (vendor.c63b596435f6d085789d.js:1)
at b.t (vendor.c63b596435f6d085789d.js:1

您的环境

Angular 版本: Angular CLI:9.1.13 节点:16.2.0 操作系统:win32 x64

Angular:9.1.13

这可能不适用于原始问题,但我将其发布在这里供可能需要它的任何人使用。

我今天遇到了类似的情况,不允许 unsafe-eval 杀死了开发中的整个应用程序。 就我而言,问题出在 JIT 编译上。 切换到 AOT 修复了它。

这是 Angular github 存储库中相关问题的链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM