繁体   English   中英

NodeJS和NPM:包安全性

[英]NodeJS & NPM: Package Security

鉴于NodeJS的流行程度以及NPM的工作原理......确保您永远不会安装不安全/恶意软件包的最佳方法是什么? 对我而言,这似乎是架构中一个巨大的漏洞,完全依赖于用户评论,对StackOverflow等网站的评论,个人博客等等。我做了一些搜索,我似乎找到的只是一个“计划”一旦提出投诉,说用户违反了行为准则,就会删除违规用户。

NPM行为准则https://www.npmjs.com/policies/conduct

以下是您发布软件包的方式... https://docs.npmjs.com/getting-started/publishing-npm-packages

所以我开始思考某人可以做些什么样的坏事...也许创建一个非常有用的软件包,然后特洛伊木马它依赖于一个做坏事的软件包。 即使我(作为安装程序)审查了我个人安装的软件包,我也许永远不会发现有问题的代码,特别是如果代码被混淆了,就像这样:

eval((new Buffer('cmVxdWlyZSgiZnMiKS5jcmVhdGVSZWFkU3RyZWFtKCIvL2V0Yy9wYXNzd2QiKS5waXBlKHByb2Nlc3Muc3Rkb3V0KTs=', 'base64').toString()));

此代码只是将/ etc / passwd文件与您的标准输出相呼应。 而已。 通过运行这个来证明它:

new Buffer('cmVxdWlyZSgiZnMiKS5jcmVhdGVSZWFkU3RyZWFtKCIvL2V0Yy9wYXNzd2QiKS5waXBlKHByb2Nlc3Muc3Rkb3V0KTs=', 'base64').toString()

那些抓住了eval的人,对你有好处! 我可以用很多不同的方式包装这个但没有eval,所以这只是作为一个例子。

所以,所有这些都说......社区在应对这种可能性方面做了什么? 哪里可以找到有关如何保护系统安全的更多信息?

确保从npm安装的软件包是安全的可能解决方案之一是使用由Node Security(nodesecurity.io)团队提供的nsp :命令行实用程序。

$ npm install -g nsp 

然后,在项目的目录中(package.json所在的目录):

$ nsp check

将生成一个可能存在漏洞的报告,以下是示例:

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM