Un nouveau modèle de permissions pour Node.js 20

Par:
fredericmazue

jeu, 20/04/2023 - 12:14

Node.js vient de sortir en version 20. Cette version met l'accent sur l'amélioration des performances, avec comme point central une nouvelle version du moteur v8, à savoir la version 11.3.  Node.js 20 inclut de nombreuses améliorations des parties fondamentales de l'environnement d'exécution, notamment URL, fetch() et EventTarget.

Le coût d'initialisation EventTarget a été réduit de moitié, offrant un accès plus rapide à tous les sous-systèmes qui l'utilisent. De plus, les appels d'API V8 Fast ont été exploités pour améliorer les performances des API telles que URL.canParse() et les minuteries.

Node.js 20 inclut des modifications spécifiques, telles que la version 2.0 mise à jour d'Ada, un analyseur d'URL rapide et conforme aux spécifications écrit en C++.

Mais la nouveauté la plus remarquable de Node.js 20 est sans doute son nouveau modèle de permissions, expérimental pour le moment. Ce mécanisme expérimental permet de restreindre l'accès à des ressources spécifiques pendant l'exécution.

Les autorisations disponibles sont documentées pour le commutateur --experimental-permission.

Lors du démarrage de Node.js avec --experimental-permission, la possibilité d'accéder au système de fichiers, de créer des processus et d'utiliser node:worker_threads sera restreinte.

Les développeurs ont désormais plus de contrôle sur l'accès au système de fichiers avec l'introduction des drapeaux --allow-fs-read et --allow-fs-write. Les développeurs peuvent également spécifier des chemins spécifiques pour l'accès au système de fichiers en transmettant des valeurs séparées par des virgules aux indicateurs. Par exemple, la commande suivante permet un accès en écriture au /tmp/dossier :

$ node --experimental-permission --allow-fs-write=/tmp/ --allow-fs-read=/home/index.js index.js