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

Fiche mise à jour le 2026-09-27

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