sjt*_*003 25 security audit dependencies npm yarnpkg
需要固定纱线的分辨率特征,还要审核npm audit
吗?有替代纱线npm audit
吗?或者,交替地,将依赖的依赖关系的分辨率工作npm
?
Gia*_* P. 105
纱线没有npm audit fix
。
但这里是如何通过使用npm
- 临时来做到这一点。
package-lock.json
不安装节点模块的情况下生成文件npm i --package-lock-only
Run Code Online (Sandbox Code Playgroud)
package-lock.json
文件npm audit fix
Run Code Online (Sandbox Code Playgroud)
yarn.lock
文件并将package-lock.json
文件转换为yarn.lock
rm yarn.lock
yarn import
Run Code Online (Sandbox Code Playgroud)
package-lock.json
文件rm package-lock.json
Run Code Online (Sandbox Code Playgroud)
yarn audit
38363 vulnerabilities found - Packages audited: 908342
Severity: 38352 Low | 11 Moderate
Run Code Online (Sandbox Code Playgroud)
(我知道。react-scripts
是疯了……)
npm audit
npm ERR! code EAUDITNOLOCK
npm ERR! audit Neither npm-shrinkwrap.json nor package-lock.json found: Cannot audit a project without a lockfile
npm ERR! audit Try creating one first with: npm i --package-lock-only
Run Code Online (Sandbox Code Playgroud)
npm audit
npm ERR! code EAUDITNOLOCK
npm ERR! audit Neither npm-shrinkwrap.json nor package-lock.json found: Cannot audit a project without a lockfile
npm ERR! audit Try creating one first with: npm i --package-lock-only
Run Code Online (Sandbox Code Playgroud)
npm i --package-lock-only
...
added 266 packages, removed 354 packages, updated 1653 packages, moved 1 package and audited 913793 packages in 54.304s
found 495 low severity vulnerabilities
run `npm audit fix` to fix them, or `npm audit` for details
Run Code Online (Sandbox Code Playgroud)
npm audit fix
...
added 267 packages from 152 contributors, removed 355 packages and updated 1712 packages in 92.849s
50 packages are looking for funding
run `npm fund` for details
fixed 211 of 495 vulnerabilities in 913793 scanned packages
284 vulnerabilities required manual review and could not be updated
Run Code Online (Sandbox Code Playgroud)
git status -s
?? package-lock.json
Run Code Online (Sandbox Code Playgroud)
yarn import
yarn import v1.21.1
info found npm package-lock.json, converting to yarn.lock
...
success Saved lockfile.
? Done in 25.61s
Run Code Online (Sandbox Code Playgroud)
Vas*_*huk 38
yarn audit
/ yarn install --audit
sinse yarn@1.12.0
https://github.com/yarnpkg/yarn/releases/tag/v1.12.0
始终使用源代码管理并签入您的package.json
以及您的yarn.lock
和/或package-lock.json
第一个文件,并从所有已提交的文件开始,以便您可以在需要时轻松回滚。
yarn outdated # view
yarn audit # view
yarn install --audit # install
Run Code Online (Sandbox Code Playgroud)
yarn upgrade-interactive
Run Code Online (Sandbox Code Playgroud)
奇怪的是,您可能会发现使用yarn audit
以下命令仍然存在该命令中未提及的一些漏洞yarn upgrade-interactive
。在这种情况下,我首先考虑的是:
yarn upgrade-interactive --latest
Run Code Online (Sandbox Code Playgroud)
还是不够好?```` 纱线升级--最新````
我已经看到了很多其他潜在的解决方案,以前我只是按照一些用户的建议暂时npm
切换yarn
到yarn
. 这对我来说也很有效。(虽然烦人而且不优雅)
有些软件包不需要安装即可运行。我还没试过这个,也许也不错:
npm_config_yes=true npx yarn-audit-fix
Run Code Online (Sandbox Code Playgroud)
这里的关键是您要npx
避免安装为依赖项。
还有更多的解决方案是可能的。npm
而且yarn
两者都是包管理器,依赖管理是一件非常困难的事情,自动修复这些依赖永远是一个很难解决的问题。因此,如果您有时间,我建议您对他们如何实际解决这些问题进行一些研究。您可能会发现自己不喜欢他们做事的方式。
最终,只要您可以回滚,您就可以尝试很多这些方法并亲自看看。某些软件包的严重性可能不需要修复,有时库还没有可用的解决方案,那么您需要考虑在代码库中删除它们的使用。从理论上讲,少即是多,对库的依赖越少,使用库的库,使用库的库......成为攻击者攻击目标的更小的表面。另外,不建议使用来自不受信任来源的库,npm
而且yarn
更不可能知道一切,也不能立即知道,所以也要考虑到这一点。
我在 package.json 文件中创建了一个脚本命令来修复它。它创建一个yarn.lock的副本作为package-lock.json,删除问题,然后重新创建yarn.lock。
"resolve:security": "npm i --package-lock-only && npm audit fix && rm yarn.lock && yarn import && rm package-lock.json",
Run Code Online (Sandbox Code Playgroud)
我希望它有帮助:)
小智 5
是的,你可以使用yarn audit
审计的漏洞,但你不能用固定的漏洞yarn audit fix
,你可以做npm audit fix
。
要修复yarn.lock
文件中的漏洞,您必须使用以下命令将软件包(带有漏洞)重新安装为新版本yarn add package_name
您可以在这里阅读问题=> https://github.com/yarnpkg/yarn/issues/7075