Node.js Permission Model

JavaScript 🔴 Senior

Définition

Modèle de permissions intégré à Node.js : lancé avec --permission, le processus se voit refuser (ERR_ACCESS_DENIED) l'accès au système de fichiers, aux processus enfants, aux workers, au réseau, aux addons natifs, à WASI et au FFI, sauf autorisation explicite (--allow-fs-read, --allow-fs-write, --allow-child-process, --allow-net…). Ajouté en 20.0.0 en expérimental, il est stable depuis 23.5.0 et 22.13.0 ; --permission-audit journalise les violations sans bloquer.

Analogie

Un badge d'accès qui n'ouvre que les portes listées, plutôt qu'un passe-partout.

Exemple de code

# Refuse tout sauf lecture de ./config et écriture de ./logs
node --permission \
  --allow-fs-read=./config \
  --allow-fs-write=./logs \
  app.js

# Phase de découverte : journaliser sans bloquer
node --permission-audit --allow-fs-read=/tmp app.js

# Dans le code : process.permission.has('fs.write', './logs') → true

Cas d'usage

Exécuter des scripts tiers, des dépendances peu fiables ou des workers d'IA avec un périmètre borné.

Anti-pattern

Lancer --permission avec --allow-fs-read=* --allow-fs-write=* : le modèle est actif mais n'interdit plus rien d'utile.

Termes liés

#securite#node22#node23#avance

Dans l'actu

  • 21/10 Node.js publie des versions de sécurité 26.12.1, 24.22.1 et 22.23.4 corrigeant 10 CVE (4 élevées, 3 moyennes, 3 faibles), dont une écriture hors limites dans le décodeur Brotli permettant une exécution de code à distance, des cont… Semaine 43 (1re moitié) · 19 – 21 octobre 2026 →
  • 14/10 Node.js 26.12.0 (Current) : la plupart des modules ES sont désormais chargés de façon synchrone, le fichier de configuration est déclaré stable, un nouveau flag --allow-fs-vfs rejoint le modèle de permissions, node:http gagne webs… Semaine 42 (1re moitié) · 12 – 14 octobre 2026 →

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre