博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node.js 10.0和NPM 6发布,强化安全性
阅读量:6125 次
发布时间:2019-06-21

本文共 1890 字,大约阅读时间需要 6 分钟。

\

看新闻很累?看技术新闻更累?试试,每天上下班路上听新闻,有趣还有料!

\
\\

4月24日,发布了10.0.0版本的Node.js,同时发布了node包管理器npm的6.0版本。这两个发布版本都强调了安全性的增强,Node.js升级到了OpenSSL 1.1.0版本,而npm包含了多项聚焦安全的特性,比如对不安全依赖的自动告警。Node.js发布版本还包含了一个新的原生编程API以及对HTTP2的稳定支持。

\\

按照,“Node.js 10.x主要关注渐进性的增强”,但这也是第一个升级到OpenSSL 1.1.0的Node版本。当这个版本的OpenSSL发布时,它得到了加密专家的赞誉,比如Open Crypto Audit的Kenn White在一条中说到:

\\
\

OpenSSL 1.1.0是一个重要的重构:IPv6、EVP、Bignum、核心结构、状态机、协商。添加了CCM、OCB、 ChaCha/Poly、scrypt、BLAKE2。

\
\\

从可以看到,OpenSSL的1.1.0版本是从2010年发布的1.0版本以来,第一次破坏二进制兼容性的版本,并且升级到了新的ABI(应用二进制接口,Application Binary Interface),这样能够允许Node.js无缝适应后续的更新,包括按照日程五月份发布的OpenSSL 1.1.1,其中会包含对TLS 1.3的支持。

\\

Node.js发布版本还包含了第一个非实验性版本的Node.js API(N-API)。按照发布说明:

\\
\

N-API是一个稳定的模块API,它独立于中的变更,允许模块在更新版本的Node.js中运行,而不需要重新编译。

\
\\

新API的意图不仅在于让包含原生(非JavaScript)代码的模块能够健壮地升级V8的版本,它还能允许包含V8之外的其他JavaScript引擎。在最初宣布N-API的中,来自微软的Arunush Chandra和来自IBM的Michael Dawson认为直接或间接依赖原生API会影响到30%的包,这对于升级Node.js版本来说,是很大的障碍。Chandra和Dawson说到:

\\
\

针对原生模块的下一代、ABI稳定的Node.js API,或者称为N-API,致力于解决这个问题,它的实现方式是为JavaScript VM中的原生API提供一个ABI稳定的抽象层。这样的话,就允许原生模块的作者针对每个平台和架构编译一次,就能将其应用于实现了N-API的任意Node.js版本。对于构建在不同VM的Node.js版本这一点依然能够成立,如。

\
\\

这个版本的Node.js还将对http2的支持作为Node.js核心的稳定部分,在Node.js 8版本系列中,这还是一个实验性的特性。内置的支持已经构建在了流行的服务器框架中,则还需要一些额外的配置。开发人员如果想要了解这些工具的话,可以在Rising Stack的博客上查阅一个。

\\

这个释放版本是10.x发布线的第一个版本,在2018年10月它将成为新的长期服务(Long Term Service,LTS)发布线。LTS通常能够保证支持三年,按照发布日程将会支持到2021年。但是,按照,最近的LTS版本(8.x)会提前过期(2019年12月),这样做是为了和OpenSSL 1.0.2的End-Of-Life保持一致。

\\

新版本的Node.js还包含了错误处理、诊断和性能方面的提升。感兴趣的开发人员可以参考Node.js博客上,并在下载Node.js的发布版本。

\\

为了与Node.js 10的版本发布保持一致,Node包管理器(Node Package Manager,npm)也释放自己的主版本,即6.0版本。新的npm 6.0版本能够用于之前版本的Node.js,也能用于新的Node.js 10.0.0,按照发布说明主要的升级理由在于安全性的增强:

\\
\

不久,npm注册表的每个用户如果使用具有已知安全问题的代码的话,都会收到自动告警。npm将会基于NSP数据库自动检查安装请求,如果代码包含安全漏洞的话,将会返回警告。

\\

另外,npm@6中的新命令“npm audit”不久就能递归分析你的依赖树,以便于识别哪里不安全,这样的话,你就可以将依赖替换为新版本或者寻找一个更安全的依赖来替代它。

\
\\

开发人员可以通过运行npm i -g npm@latest命令升级至最新版本的npm。

\\

查看英文原文

转载地址:http://pnbua.baihongyu.com/

你可能感兴趣的文章
预处理、const与sizeof相关面试题
查看>>
爬虫豆瓣top250项目-开发文档
查看>>
Elasticsearch增删改查
查看>>
oracle归档日志增长过快处理方法
查看>>
有趣的数学书籍
查看>>
teamviewer 卸载干净
查看>>
多线程设计模式
查看>>
解读自定义UICollectionViewLayout--感动了我自己
查看>>
SqlServer作业指定目标服务器
查看>>
UnrealEngine4.5 BluePrint初始化中遇到编译警告的解决办法
查看>>
User implements HttpSessionBindingListener
查看>>
抽象工厂方法
查看>>
ubuntu apt-get 安装 lnmp
查看>>
焊盘 往同一个方向增加 固定的长度方法 总结
查看>>
eclipse的maven、Scala环境搭建
查看>>
架构师之路(一)- 什么是软件架构
查看>>
jquery的冒泡和默认行为
查看>>
USACO 土地购买
查看>>
【原创】远景能源面试--一面
查看>>
B1010.一元多项式求导(25)
查看>>