Tôt ou tard, tout expert en sécurité informatique sera confronté à une MEAN, mais avant de déclencher l’alerte à la bombe ou de tirer le signal d’alarme, nous vous invitons à lire ce dossier.
Le terme MEAN désigne un ensemble de composants (MongoDB, Express, Angular et Node.js) constituant un socle technique pour développer des applications en JavaScript. Pour un expert en sécurité informatique, l’utilisation de ce langage de programmation n’est pas très rassurante : langage non typé, problème de transitivité des opérateurs…
Pour un joueur de démineur expérimenté (sous Windows 95/98), le JavaScript est un langage de programmation limité à de simples fonctions basiques comme OnClick() ou Alert() et dont l’usage est purement cosmétique (défilement de texte, titre clignotant…).
Mais depuis, les moteurs d’exécution JavaScript ont bien évolué et les optimisations apportées permettent d’augmenter considérablement les performances et par conséquent, d’en adapter les usages. C’est ainsi que le JavaScript se retrouve utilisé côté serveur (SSJS : Server-Side JavaScript). Il existe de nombreux moteurs pour créer un back-end en JavaScript dont le plus connu est Node.js qui utilise le moteur V8 de Google.
Et ainsi, il devient facile de devenir un développeur « full stack » en JavaScript. Les entreprises recherchent activement ce profil de personne capable d’agir du front-end à la base de données en passant par le back-end. Mais pourtant, un vrai développeur full-stack ça n’existe pas vraiment. Il est très difficile de connaître l’ensemble des technologies nécessaires pour développer un site web. Entre MongoDB, Express, Angular et Node.js, c’est le grand écart !
Ce dossier s’adresse aussi bien aux développeurs « full stack » qu’aux personnes curieuses de mettre en œuvre cette technologie, ils y trouveront un ensemble de bonnes pratiques de développement pour sécuriser leurs applications. Les experts en sécurité applicative pourront s’appuyer sur ce dossier pour conseiller les développeurs.
Ce dossier est accompagné de nombreux prototypes disponibles sur GitHub : https://github.com/MiscMag101. Vous pouvez vous y référer à tout moment pour avoir une vue d’ensemble du code source et tester rapidement les prototypes.