是否有针对npm审核的纱线替代品?

sjt*_*003 25 security audit dependencies npm yarnpkg

需要固定纱线的分辨率特征,还要审核npm audit吗?有替代纱线npm audit吗?或者,交替地,将依赖的依赖关系的分辨率工作npm

Gia*_* P. 105

纱线没有npm audit fix

但这里是如何通过使用npm- 临时来做到这一点。

  1. package-lock.json不安装节点模块的情况下生成文件
npm i --package-lock-only
Run Code Online (Sandbox Code Playgroud)
  1. 修复软件包并更新package-lock.json文件
npm audit fix
Run Code Online (Sandbox Code Playgroud)
  1. 删除yarn.lock文件并将package-lock.json文件转换为yarn.lock
rm yarn.lock
yarn import
Run Code Online (Sandbox Code Playgroud)
  1. 删除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)

  • 这个包 https://www.npmjs.com/package/yarn-audit-fix 基于上面的答案,将其转换为单个命令“yarn-audit-fix”,因此它应该为您简化上述内容。 (5认同)

Vas*_*huk 38

yarn audit/ yarn install --auditsinse yarn@1.12.0

https://github.com/yarnpkg/yarn/releases/tag/v1.12.0

  • 如果看到“找不到命令” audit”,请升级纱线安装。npm install --global yarn` npm升级--global yarn (5认同)
  • 当前没有“ yarn audit”的“ fix”选项,就像使用“ npm audit fix”一样。在这里关注问题:https://github.com/yarnpkg/yarn/issues/7075 (4认同)

Dan*_*ung 8

我认为纱线尚未准备就绪.您可以参考以下问题. https://github.com/yarnpkg/yarn/issues/5808


jas*_*ard 8

第一名

始终使用源代码管理并签入您的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切换yarnyarn. 这对我来说也很有效。(虽然烦人而且不优雅)

有些软件包不需要安装即可运行。我还没试过这个,也许也不错:

npm_config_yes=true npx yarn-audit-fix
Run Code Online (Sandbox Code Playgroud)

参考

这里的关键是您要npx避免安装为依赖项。

还有更多的解决方案是可能的。npm而且yarn两者都是包管理器,依赖管理是一件非常困难的事情,自动修复这些依赖永远是一个很难解决的问题。因此,如果您有时间,我建议您对他们如何实际解决这些问题进行一些研究。您可能会发现自己不喜欢他们做事的方式。

最终,只要您可以回滚,您就可以尝试很多这些方法并亲自看看。某些软件包的严重性可能不需要修复,有时库还没有可用的解决方案,那么您需要考虑在代码库中删除它们的使用。从理论上讲,少即是多,对库的依赖越少,使用库的库,使用库的库......成为攻击者攻击目标的更小的表面。另外,不建议使用来自不受信任来源的库,npm而且yarn更不可能知道一切,也不能立即知道,所以也要考虑到这一点。


Sod*_*aab 8

我在 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

  • 该线程已被锁定,应创建一个新线程。他们并没有认真对待这件事。 (3认同)