BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Node.js 20をリリース、セキュリティ向上のための実験的な権限モデルを搭載

Node.js 20をリリース、セキュリティ向上のための実験的な権限モデルを搭載

Node.jsチームは先日、Node v20をリリースした。Node v20は、10月に長期サポート(LTS)ステージに入った後、完全な実運用に向けた準備が整う予定だ。主な機能には、セキュリティ向上のための実験的な権限モデルや、スタンドアロンで実行可能なNodeアプリケーションのビルドを含んでいる。

Node.js TSC MemberのRafael Gonzaga氏は、次のように説明している。

実験的な権限モデルの追加とV8アップデートにより、Node.js20は、Node.jsが開発環境にどのように適合するかをテストし、評価するのに最適になった。私たちはこの1年間でNode.jsをより安全で高性能にするという、素晴らしい進歩を遂げた。

開発者は、--experimental-permissionフラグで新しい権限APIを選択でき、これを有効にすると利用可能なすべてのアクセスが制限される。現在、利用可能な権限は、ファイルシステムへのアクセス(--allow-fs-read--allow-fs-writeフラグなど)、子プロセスの生成(--allow-child-processフラグ)、ワーカスレッドの生成(--allow-workerフラグ)などを設定できる。たとえば、--allow-fs-write=* --allow-fs-read=/tmp/ は、/tmp/ フォルダへの FileSystemRead アクセスを許可し、すべての FileSystemWrite 操作を許可する。

権限はプロセス範囲に限定される。したがって開発者は特定のモジュールのみに対するアクセス許可を拒否できない。--experimental-permissionを持つプロセスは、デフォルトでは子プロセスを生成できない。--allow-child-processフラグが有効な場合、正しい権限の子プロセスを生成するために、正しい引数を渡すことはユーザーの責任になる。詳細についてはこのプルリクエスト権限モデルのロードマップを参照されたい。

Node v20ではNode.jsがない、またはインストールできないユーザーのためにNodeアプリケーションをスタンドアロンの実行ファイル(単独で実行可能)からビルドできる。単独実行可能アプリのサポートは、Windows、MacOS、Linux(Alpineを除くNode.jsがサポートするすべてのディストリビューション、s390xとppc64を除くNode.jsがサポートするすべてのアーキテクチャ)で利用可能だ。マイクロソフトはベクター攻撃を減らす方法として単独実行可能なアプリを実験している。

Node v19で導入されたテストランナーがv20では安定しており、製品として準備万端であることを示している。V8 JavaScript/WebAssemblyエンジンは、バージョン11.3にアップデートされている。これによりArrayとTypedArrayをコピーで変更するメソッドや、サイズ変更可能なArrayBufferと拡張可能なSharedArrayBufferなど新しいJavaScript APIが利用可能になった。Node v20はV8のWebAssemblyテールコールのサポート(v11.2で導入)を活用できる。そしてimport.meta.resolve()の呼び出しが同期されるようになった。

Node.jsはOpen JS FoundationのMITライセンスで利用できるオープンソースソフトウェアである。Node.jsへのコントリビューションとフィードバックはNode.jsのコントリビュート・ガイドライン行動規範によって奨励されている。

作者について

この記事に星をつける

おすすめ度
スタイル

BT