Skip to content

Latest commit

 

History

History
31 lines (20 loc) · 1.84 KB

childprocesses.french.md

File metadata and controls

31 lines (20 loc) · 1.84 KB

Soyez prudent lorsque vous travaillez avec des processus enfants

Un paragraphe d'explication

Aussi importants que soient les processus enfants, ils doivent être utilisés avec prudence. Les entrées des utilisateurs qui y sont passées doivent être assainies (NdT sanitize), voire évitées. Les dangers d'une entrée non assainie exécutant une logique au niveau du système sont illimités, allant de l'exécution de code à distance à l'exposition de données système sensibles et aussi de perte de données. Une liste de contrôle des préparatifs pourrait ressembler à ceci :

  • éviter les entrées des utilisateurs dans tous les cas, autrement les valider et les assainir
  • limiter les privilèges du parent et des processus enfants en utilisant les identités de groupe et d'utilisateur
  • exécuter votre processus dans un environnement isolé pour prévenir des effets secondaires indésirables si les autres préparations échouent

Exemple de code : Les dangers de l'exécution de processus enfants non assainis

const { exec } = require('child_process');

...

// comme exemple, prenons un script qui prend deux arguments, l'un d'entre eux est une entrée utilisateur non assainie
exec('"/path/to/test file/someScript.sh" --someOption ' + input);

// -> imaginez ce qu'il se passerait si un utilisateur entrait simplement quelque chose comme '&& rm -rf --no-preserve-root /'
// vous auriez une surprise indésirable

Ressources supplémentaires

Extrait de la documentation Node.js sur les processus enfants :

Ne jamais passer une entrée utilisateur non assainie à cette fonction. Toute entrée comportant des métacaractères du shell peut être utilisée pour déclencher une commande arbitrairement