在react脚本npm start中使用SKIP_FLIGHT_CHECK=true和openssl-legacy-provider安全吗?

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

我正在开发一个 React 应用程序,其中包含 package.json 文件中使用的大多数库的旧版本。

例如

"react": "^16.3.1",
"react-scripts": "^3.0.1"
...

在使用最新版本的 NodeJS (>18) 安装软件包时,我遇到了冲突依赖错误,所以我使用了

npm install --legacy-peer-deps

这样我的安装就成功了,但是当我使用 npm start 运行时,它开始给出与 webpack 版本 4.42.2 相关的错误。

我进行了调试并找到了一种解决方案并更新了脚本,如下所示,

"start": "cross-env SKIP_FLIGHT_CHECK=true react-scripts --openssl-legacy-provider start"

通过上述操作,它开始正常运行。

现在我想检查一下这个解决方案是否对安全漏洞有任何改变?

或者在任何攻击方面它是安全的吗?

reactjs node.js security npm react-scripts
1个回答
0
投票

使用 SKIP_FLIGHT_CHECK=true--openssl-legacy-provider 标志可以解决开发环境中的兼容性问题,但它们可能会带来安全风险。

SKIP_FLIGHT_CHECK: 该标志会跳过飞行检查,这意味着它绕过了一些与 npm 包完整性相关的检查。虽然这可能会解决某些安装问题,但也为潜在的安全漏洞打开了大门。跳过完整性检查意味着您无法确保正在安装的软件包没有被篡改或以任何方式受到损害。通常不建议跳过这些检查,尤其是在生产环境中。

--openssl-legacy-provider: 此标志告诉 React Scripts 使用旧版 OpenSSL 提供程序。 OpenSSL 是一种广泛使用的加密库,使用旧版提供程序可能会使您的应用程序面临旧版本 OpenSSL 中存在的漏洞。虽然出于兼容性原因这可能是必要的,但确保您的应用程序不会面临已知的安全风险也很重要。

总之,虽然这些标志可能有助于解决开发环境中的直接问题,但它们可能会损害应用程序的安全性。建议通过将依赖项更新为彼此兼容并与您的 Node.js 版本兼容的版本来解决兼容性问题的根本原因。如果您必须暂时使用这些标志,请确保在解决了潜在的兼容性问题后重新访问并删除它们。此外,出于安全原因,请确保您的生产环境不依赖这些标志。

© www.soinside.com 2019 - 2024. All rights reserved.