Node.js
L'asynchrone cache des failles que les scanners ratent.
Une prototype pollution qui remonte jusqu'à une RCE, un opérateur Mongo injecté dans un filtre, un child_process.exec sur une entrée, un JWT en alg: none : les failles Node tiennent au détail. Je lis le code et la chaîne de dépendances, pas seulement les réponses HTTP.
Ce que couvre l'audit Node.js.
Les classes de failles les plus fréquentes sur une application Node.js réelle, testées à la main sur votre code et vos endpoints. OWASP WSTG + API Top 10, en authentifié comme en non authentifié.
Prototype pollution
merge / clone non sûrs, escalade vers déni de service ou RCE
Injection NoSQL
opérateurs Mongo injectés, $where, filtres non typés
Injection de commande
child_process.exec, arguments non échappés
SSTI & templates
Pug, EJS, Handlebars sur entrée utilisateur
JWT & autorisation
alg: none, secret faible, IDOR, contrôle d'accès
SSRF, ReDoS & dépendances
SSRF, expressions catastrophiques, chaîne d'approvisionnement npm
Audit de code
L'audit de code Node.js, quand les sources sont sur la table.
Un test en boîte noire trouve ce qui s'exploite depuis l'extérieur. Un audit de code Node.js trouve en plus ce qui n'est pas encore atteignable : la route oubliée derrière un feature flag, le middleware d'authentification court-circuité par un next(), l'eval resté dans un script de migration. Sur une base Node, les deux se complètent — et l'accès au dépôt rend le test nettement plus rapide.
Je lis votre code JavaScript ou TypeScript, je remonte le chemin de chaque entrée utilisateur jusqu'aux fonctions dangereuses, puis j'exploite ce que je trouve sur une instance de test. Une faille compte quand elle est prouvée, pas quand un outil la signale.
Dépendances npm
package-lock.json lu ligne à ligne, paquets abandonnés, chaîne d'approvisionnement
Secrets & configuration
clés en dur, .env versionné, CORS et cookies trop permissifs
Contrôle d'accès
middleware contourné, routes non protégées, IDOR visible dans la requête
Entrées non validées
chemin de la donnée jusqu'à exec, eval ou un filtre Mongo
Code mort & endpoints oubliés
routes de debug, back-office interne resté joignable en production
Correctif au niveau du code
le patch proposé sur votre fichier, pas une recommandation générique
Vous cherchez la même revue sur une autre stack ? Voir l'audit de code toutes technologies.
Du dépôt au contre-test.
Cadrage, test, rapport, contre-test. Vous savez à tout moment ce qui a été couvert sur votre app Node.js et ce qu'il reste à passer. Prix fixe défini au cadrage.
-
~ 1 appel
Cadrage
Un court appel, un prix fixe, des règles d'engagement écrites. Le runtime et le périmètre sont notés ici.
-
5–10 jours
Test
Exploitation manuelle des classes de failles propres à cette stack, en plus du parcours OWASP complet. Le critique part le jour même.
-
48 h
Rapport
Chaque faille : criticité, reproduction pas à pas, impact réel, et le correctif au niveau du code. Vos devs corrigent sans me relancer.
-
gratuit · 30 j
Contre-test
Vous patchez, je rejoue chaque faille et délivre l'attestation. Compris dans le forfait.
Quand auditer une application Node.js.
Un pentest n'attend pas l'incident. Les cas les plus courants quand une équipe Node m'écrit.
Avant de signer
- Un client grand compte exige une preuve de test avant de signer
- Une levée de fonds et sa due diligence technique approchent
Avant de mettre en ligne
- Une montée de version Node ou une refonte d'API change la surface
- Vous éclatez un monolithe Express en services séparés : chaque appel interne devient une surface
- Une dépendance npm critique compromise ou un audit de chaîne d'approvisionnement
Avant d'en répondre
- Une revue SOC 2 / ISO 27001 réclame un pentest annuel
- Un doute sur un JWT, une injection NoSQL ou une prototype pollution
Questions sur l'audit Node.js.
Les vraies questions d'un premier appel de cadrage sur une application Node. Si la vôtre manque, elle a sa réponse en un e-mail.
Express, NestJS ou Fastify ?
Les trois, plus Koa et les apps temps réel (WebSocket / Socket.io). Le périmètre s'adapte à votre runtime.
Analysez-vous les dépendances npm ?
Oui. La chaîne d'approvisionnement et les paquets vulnérables font partie de la surface d'attaque.
Avez-vous besoin du code ?
La boîte grise aide sur la prototype pollution et les injections, mais le test boîte noire reste possible.
Audit de code Node.js ou test d'intrusion ?
Les deux se vendent séparément, et se combinent bien. Le test d'intrusion mesure ce qu'un attaquant obtient depuis l'extérieur ; l'audit de code ouvre le dépôt et couvre ce qui n'est pas encore exposé. Sur un budget serré et une application déjà en ligne, je commence par le test.
Comment se passe l'accès au dépôt ?
Un accès en lecture seule sur votre Git, ou une archive. NDA signé avant tout accès, aucune copie conservée après la mission. TypeScript comme JavaScript, monorepo compris.
TypeScript change quelque chose ?
Le typage réduit certains bugs, pas les failles de logique, d'auth ou d'injection. Le test reste tout aussi pertinent.
Le prix dépend-il de la taille du dépôt ?
Du périmètre exposé, surtout : nombre d'écrans, de rôles et d'endpoints. Un gros dépôt avec trois rôles se teste plus vite qu'un petit dépôt qui en compte douze. Forfait fixe, jamais de TJM, validé avant que je commence.
Et après le déploiement des correctifs ?
Je rejoue chaque faille sur la version patchée et je vous dis laquelle tient et laquelle non. Gratuit, sous 30 jours, puis attestation à jour.
Le rapport Node.js,
point par point.
Le correctif cite le paquet, la version et la ligne — vos devs Node.js l'appliquent sans me relancer.
Qui mène votre test.
Saïd Mimouni
Pentest & audit de sécurité · applications web & API
Je teste des applications web et des API à la main, en solo, pour des startups et des agences. Vous parlez à la personne qui ouvre le terminal, du premier e-mail au contre-test.
À distance par défaut, sur place si vous préférez : je me déplace dans vos bureaux, partout en France.