BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Node.js 10.0とNPM 6はセキュリティを強調してリリースされた

Node.js 10.0とNPM 6はセキュリティを強調してリリースされた

原文(投稿日:2018/04/26)へのリンク

あなたのリクエストに応じて、ノイズを減らす機能を開発しました。大切な情報を見逃さないよう、お気に入りのトピックを選択して、メールとウェブで通知をもらいましょう。

4月24日、Node.jsプロジェクトはNode.jsのバージョン10.0.0をリリースして、npm, Incは、node package managerであるnpmのバージョン6.0をリリースした。 どちらのリリースもセキュリティの向上が協調されており、Node.js 10.0.0がOpenSSLバージョン1.1.0にアップデートされ、NPMには新しいネイティブプログラミングAPIと安定したHTTPのサポートを含む新しいセキュリティにフォーカスした機能が含まれている。Node.jsのリリースにも新しいネイティブプログラミングAPIとHTTP2サポオートが含まれている。

公式リリースのブログ投稿によると、「Node.js 10.xは主にインクリメンタルな改善に重点を置いています」が、これはOpenSSLのバージョン1.1.0に更新する最初のNodeバージョンである。このバージョンがリリースされたとき、Open Crypto AuditのKenn White氏のような暗号学者に歓迎され、tweetによると:

OpenSSL 1.1.0は、IPv6、EVP、Bignum、core structs、state machine、negotiationの主要なリファクターです。CCM、OCB、ChaCha/Poly、scrypt、BLAKE2を追加します。

Wikipediaのリリース履歴から判断すると、バージョン1.1.0は、2010年の1.0リリースとバイナリ互換を失う最初のOpenSSLリリースであり、新しいABI (Application Binary Interface)にアップグレードすることで、Node.jsがさらなる更新をシームレスに採用できるようになり、5月にリリース予定のOpenSSL 1.1.1でのサポートが予定されているTLS 1.3が含まれる。

Node.jsリリースには、Node.js API(N-API)の最初の実験ではないバージョンも含まれている。リリース投稿によると:

N-APIはV8の変更から独立したモジュールAPIであり、再コンパイルなしに新しいバージョンのNode.jsにモジュールを対応させることができる。

この新しいAPIは、V8のバージョンのアップグレードの時に(JavaScript以外の)ネイティブコードをより堅固なものにするだけでなく、V8以外のJavaScriptエンジンを組み込めるようにする。 最初にN-APIを発表したブログ投稿において、MicrosoftのArunush Chandra氏と、IBMのMichael Dawson氏は、ネイティブAPIへの依存が、直接または間接の依存関係によるパッケージの30%に影響を与え、結果としてNode.jsのバージョンをアップグレードするのに大きな壁になると推測していると、Chandra氏とDawson氏は言った:

次世代のABI-stable Node.js APIやN-APIは、JavaScriptのネイティブAPIへのABI-stable抽象化レイヤを提供して、この問題を解決することを目指しています。これはネイティブモジュールの作者が、プラットフォームとアーキテクチャごとに1回、モジュールをコンパイルすると、N-APIを実装した任意のNode.jsバージョンで利用できるようになる。 これはNode-ChakraCoreのような、異なるVMに構築されたNode.jsのバージョンであっても当てはまる。

このNode.jsバージョンは、バージョン8シリーズからの実験機能であったhttp2のサポートがNode.jsコアの一一部として有効になった。人気のフレームワークであるHapiKoaは、Expressのいくつかの構成が必要だが、最初から組み込まれている。このツールを使い始めたい開発者は、Rising Stackブログで簡単なチュートリアルを読むことができる。

このリリースは、10.xリリースラインの最初のもので、2018年10月に新しいアクティブなLong Term Service (LTS) リリースラインになる。LTS バージョンは通常、3年のサポートが保証されており、このリリースでは、2021年4月までサポートされる予定である。 しかしながら、Node.jsリリーススケジュールでは、最新のLTSバージョン(8.x) は、OpenSSL 1.0.2の廃止に合わせて早期(2019年12月)に期限切れになる予定である。

新しいバージョンのNode.jsにはエラーハンドリング、診断、パフォーマンスの改善が含まれている。興味がある開発者は、Node.jsの完全なリリースノートを参照して、Node.jsのプロジェクトホームページからダウンロードしてほしい。

Node.jsバージョン10と連携して、Node Package Manager (npm)の新しいメジャーリリースであるバージョン6.0の公開が発表された 。新しいnpmバージョン6.0では、以前のNode.jsバージョンとともに、新しいNode.js 10.0.0が利用可能で、発表では、セキュリティの強化が、主要なアップグレードの理由として強調されている:

まもなく、npm Registryのユーザーは、既知のセキュリティ問題を持つコードを利用しようとすると、自動的に警告を受けることになる。npmは自動的にNSPデータベースに対するインストール要求をレビューするようになり、コードに脆弱性が含まれている場合は警告を返すことになる。

さらにnpm@6の新しいコマンド`npm audit`は、依存関係ツリーを再帰的に分析して、なにが安全でないかを特定できるため、新しいバージョンに切り替えたり、より安全な依存関係を見つけることができる。

開発者はnpm i -g npm@latestを実行することによって、最新バージョンに更新できる。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT