npq
v3.5.3
安全*通过审核NPM/纱线安装软件包作为安装过程的一部分
关于NPQ的媒体报道:
安装了NPQ后,您可以安全地*安装软件包:
npq install express
npq
将通过采用句法启发式法并查询CVE数据库来执行以下步骤以检查该软件包是否安全:
如果提示NPQ继续进行安装,则只需将实际软件包安装作业移交给软件包管理器(默认情况下)。
安全* - 没有保证的安全;仍然存在一个没有公开披露安全漏洞并通过NPQ的支票的恶意或脆弱的软件包。
npm install -g npq
注意:我们建议使用npm
而不是yarn
安装。这样, npq
可以自动为您安装Shell别名。
npq install express
由于npq
是确保要安装的NPM软件包安全的预步骤,因此您可以将其安全地嵌入日常npm
使用中,因此无需记住明确运行npq
。
alias npm= ' npq-hero '
如果您使用的是yarn
,或者通常要明确告诉NPQ哪个要使用的软件包管理器,则可以指定一个环境变量: NPQ_PKG_MGR=yarn
示例:用纱线作为包装管理器创建一个别名:
alias yarn= " NPQ_PKG_MGR=yarn npq-hero "
注意:默认情况下, npq
将在完成相应软件包的适当履历后,将所有命令及其参数卸载给npm
软件包管理器。
马歇尔名字 | 描述 | 笔记 |
---|---|---|
年龄 | 如果NPM的年龄少于22天,将显示包装的警告 | 检查包装创建日期,而不是特定版本 |
作者 | 如果在没有作者字段的情况下找到包裹,将显示警告 | 检查作者的最新版本 |
下载 | 如果包裹的下载计数在上个月少于20 | |
读书我 | 如果包裹没有读数,或者已将其作为安全占位符套件被NPM工作人员检测到警告 | |
仓库 | 如果在没有有效且可行的存储库URL的情况下找到包裹,将显示警告 | 检查存储库URL的最新版本 |
脚本 | 如果包装具有预/后安装脚本,则会显示警告,这可能是恶意的 | |
Snyk | 如果在Snyk的数据库中发现了漏洞的软件包,将显示警告 | 对于Snyk,您需要使用有效的API令牌安装snyk NPM软件包,或者使Snyk_token环境变量中的令牌可用,并且NPQ将使用它 |
执照 | 如果在没有许可字段的情况下找到包裹,将显示警告 | 检查最新版本的许可证 |
过期的域 | 如果发现包裹的一位维护者,将显示一个包含的电子邮件地址,其中包括已过期的域名,将显示警告 | 检查具有已过期域的维护者的依赖版本 |
签名 | 将在注册表的pakument上显示包装的签名与NPMJS.COM注册表上发布的键 | |
出处 | 将验证包裹对已发布软件包的出处元数据的证明 |
要完全禁用马歇尔,请使用Marshall的短名称设置环境变量。
例如,禁用Snyk脆弱性Marshall:
MARSHALL_DISABLE_SNYK=1 npq install express
npq install express --dry-run
从Liran Tal学习Node.js安全的编码技术和最佳实践
npm install
将安装模块,即使它具有漏洞; NPQ将显示检测到的问题,并提示用户确认是否要进行安装。pre-install
脚本,该脚本可能对您的系统有可能有害并提示您是否安装它。尽管npm audit
不会执行任何此类检查,并且仅向已知安全问题咨询漏洞数据库。npm audit
功能更接近SNYK的功能,而不是NPQ所做的。请咨询有关为该项目做出贡献的指南的贡献
liran tal [email protected]