Skip to Content
SécuritéPartie 10 — Sécurité Next.js / React / NodeVue d'ensemble

Partie 10 — Sécurité Next.js / React / Node

⏱️ TL;DR — Le stack JavaScript moderne a ses pièges propres, souvent liés à la frontière floue entre client et serveur. En Next.js (App Router), du code s’exécute côté serveur (Server Components, Server Actions, route handlers) et côté client — et confondre les deux fuite des secrets (une clé dans une variable NEXT_PUBLIC_ finit dans le bundle du navigateur) ou saute des contrôles (une Server Action est un endpoint réseau, pas un simple appel de fonction : il faut valider ses entrées et vérifier l’autorisation). Cette partie couvre la frontière client/serveur, la validation des Server Actions/route handlers, l’auth (Auth.js), le middleware et les en-têtes, puis Node/npm (audit, SSRF, supply chain).

Le problème qu’on résout

Next.js a brouillé une frontière autrefois nette : dans un même fichier, du code peut tourner sur le serveur ou dans le navigateur, et il n’est pas toujours évident de savoir où. Cette ambiguïté est la source des failles spécifiques au stack : des secrets qui traversent la frontière vers le client, des contrôles qu’on croit faire côté serveur mais qui sont contournables, des Server Actions traitées comme de simples fonctions alors que ce sont des endpoints exposés. Ajoute l’écosystème npm (des milliers de dépendances, une supply chain fragile) et tu as un terrain à sécuriser avec attention.

Cette partie applique tout le cours (auth, autorisation, injections, XSS, secrets, supply chain) à React/Next.js/Node, en insistant sur ce qui est propre à ce stack.

Ce que tu sauras faire à la fin de cette partie

  • Maîtriser la frontière client/serveur de Next.js et empêcher les fuites de secrets (NEXT_PUBLIC_).
  • Traiter une Server Action / un route handler comme un endpoint : valider (Zod) et autoriser.
  • Sécuriser l’authentification (Auth.js/NextAuth), le middleware et poser les en-têtes (next.config).
  • Sécuriser le runtime Node : npm audit, SSRF via fetch serveur, hygiène de la supply chain.

Les chapitres

#ChapitreEn un mot
10.1Frontière client/serveur & secretsServer vs Client Components, NEXT_PUBLIC_, fuite de secrets.
10.2Server Actions & route handlersEndpoints déguisés : valider (Zod) et autoriser à chaque appel.
10.3Auth.js, middleware & headersSessions, middleware (ses limites), en-têtes via next.config.
10.4Node, npm & SSRFnpm audit, fetch serveur & SSRF, supply chain npm.

Après le web applicatif (PHP/Symfony, Next.js), on aborde un cas particulier majeur pour l’audience EdTech : la Partie 11 — Sécurité Moodle & LMS.


On commence par la frontière qui piège tout le monde : Frontière client/serveur & secrets.

Last updated on