Node.js v7 Beta 版引入 citgm

阅读数:2296 2016 年 9 月 29 日

话题:JavaScriptNode.js语言 & 开发

Node.js 基金会发布了 Node.js v7 Beta 版。该版本的发布恰逢 v6 成为该基金会的第二个 LTS 版本。在 2019 年 4 月份之前,v6 版本将可以一直得到积极的技术支持和维护。

Node.js 技术指导委员会主席 Rod Vagg 告诉 InfoQ:

v7 的重点是确保生态系统中的模块可以和 Node Core 保持一致。Node.js Core 技术指导委员会已经确定出了该生态系统最依赖的其中 68 个 Node.js 模块,并使用了一种名为“金矿中的金丝雀(citgm)”的技术,以确保 Node.js 版本升级时,模块不会损坏。

Citgm 是一个冒烟测试工具,可以自动运行针对 Node.js 生态系统中各模块的单元测试。它令人难以置信的有效,可以找出生态系统和 Node Core 本身存在的各种各样的回归缺陷。

Vagg 将模块描述为 Node.js 生态系统的“根本”,并将其归因于近年技术发展的步伐,因为 Node.js 生态系统在发展最快的生态系统中是最大的,它有超过 32 万个 npm 模块。

Node.js v6.6 有一些显著的变化,其中包括一个重新添加crypto.timingSafeEqual的提交,让“事件监听器达到最大值”的内存泄漏警告更易用,以及未处理拒绝现在会在第一次标记后发出一个处理警告。

在宣布面向所有已发布的活跃版本的安全更新后,该基金会发布了影响 Node.js 的漏洞列表,其中包括 CVE-2016-2183:SWEET32 Mitigation

据 Vagg 介绍,“SWEET32是一个新的针对较老的块加密算法的攻击。那些算法使用了 64 位的块大小。OpenSSL 已经将基于 DES 的加密算法从HIGH迁移到MEDIUM类。由于 Node.js 在其默认套件中包含了HIGH,而不是MEDIUM,所以,如果使用默认套件,就不会包含受影响的加密算法。”虽然这个漏洞并不是很严重,但它影响了 Node.js 的所有版本。

CVE-2016-6304(OCSP 状态请求扩展导致内存无限增长)也影响了 Node.js 的所有版本,它被认为是一个严重的缺陷。该漏洞允许恶意客户端在单个会话中发送很大的 OCSP 请求扩展,耗尽服务器的内存,导致 DoS。使用 TLS 的 Node.js 服务器容易受到攻击。

从 2016 年 6 月开始,Node.js v5 进入维护模式。两个月之后,它走到了生命周期的尽头。9 月份,随着 v7 的发布,v6 成为 Node.js 的第二个 LTS 版本。

查看英文原文:Node.js v7 Beta Brings Canary in a Gold Mine