Security 如何在我自己的笔记本电脑上安全地开发不受信任的NPM模块?

Security 如何在我自己的笔记本电脑上安全地开发不受信任的NPM模块?,security,npm,development-environment,Security,Npm,Development Environment,我最近才意识到在我自己的机器上运行npm install是完全不安全的。任何人都可以将任何内容发布到NPM,即使有某种方法可以验证单个包不是邪恶的,也很难验证其所有依赖项 NPM使用我的用户权限(不是root)运行,但在我的Macbook环境中,这几乎是不相关的,因为我的所有个人文件也属于同一用户。(root唯一能增加的是破坏操作系统本身的能力,而这一点就不那么重要了。) 那么:人们如何安全地从NPM运行不受信任的代码?显然,在虚拟机中运行任何东西都更安全,但我似乎总是在本地联网方面遇到困难 或

我最近才意识到在我自己的机器上运行
npm install
是完全不安全的。任何人都可以将任何内容发布到NPM,即使有某种方法可以验证单个包不是邪恶的,也很难验证其所有依赖项

NPM使用我的用户权限(不是
root
)运行,但在我的Macbook环境中,这几乎是不相关的,因为我的所有个人文件也属于同一用户。(root唯一能增加的是破坏操作系统本身的能力,而这一点就不那么重要了。)

那么:人们如何安全地从NPM运行不受信任的代码?显然,在虚拟机中运行任何东西都更安全,但我似乎总是在本地联网方面遇到困难

或者我想我可以创建一个新用户,让所有与NPM相关的东西都归该用户所有,而该用户无权访问我系统的其余部分


还有其他好的选择吗?

这方面的缓解措施包括:

  • 如果您是拥有模块的用户,则不应保持登录状态 npm。(非常简单,
    npm注销
    npm登录
  • 使用
    npm shrinkwrap
    锁定依赖项
  • 使用
    npm安装someModule——忽略脚本
另请参见和


请注意,如果社区没有注意到,恶意模块可能会将后门或漏洞引入使用它构建的任何代码中。

对此的缓解措施包括:

  • 如果您是拥有模块的用户,则不应保持登录状态 npm。(非常简单,
    npm注销
    npm登录
  • 使用
    npm shrinkwrap
    锁定依赖项
  • 使用
    npm安装someModule——忽略脚本
另请参见和

请注意,如果社区没有注意到,恶意模块可能会在使用它构建的任何代码中引入后门或漏洞