Node.js Permission Model
JavaScript 🔴 SeniorDé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
Fiche mise à jour le 2026-09-27