Sécuriser une application Next.js : la checklist 2026
Next.js est performant et agréable à développer, mais une app mise en production sans durcissement laisse souvent des portes ouvertes : routes admin accessibles, secrets exposés, uploads non validés, headers manquants. Voici la checklist qu'on applique avant chaque mise en ligne.
1. Les headers de sécurité
Ce sont les fondations, faciles à oublier. À configurer (via next.config ou un middleware) :
- Strict-Transport-Security (HSTS) : force le HTTPS.
- X-Frame-Options / frame-ancestors : empêche le clickjacking.
- X-Content-Type-Options: nosniff.
- Referrer-Policy et Permissions-Policy pour limiter les fuites et les accès (caméra, micro, géoloc).
2. La Content Security Policy (CSP)
La CSP est votre meilleure défense contre les attaques XSS (injection de scripts). L'idéal en Next.js est une CSP stricte avec nonce généré par requête, plutôt qu'un fourre-tout en unsafe-inline. C'est un sujet à part entière — on lui consacre un guide dédié.
3. La protection des routes et des API
- Vérifier l'authentification ET les autorisations côté serveur (jamais seulement masquer un bouton côté client).
- Contrôler le rôle de l'utilisateur sur chaque route sensible (un user ne doit pas atteindre une route admin).
- Utiliser des identifiants non devinables (UUID plutôt que des ID séquentiels) pour éviter l'énumération.
- Limiter le débit (rate limiting) sur les endpoints sensibles : login, contact, paiement.
4. La validation des uploads
Ne faites jamais confiance à l'extension ou au type déclaré d'un fichier. On vérifie les magic bytes (la vraie signature binaire du fichier), on limite la taille, et on stocke les fichiers hors du dossier servi publiquement quand c'est possible.
5. Les secrets et les webhooks
- Aucun secret côté client : seules les variables NEXT_PUBLIC_ sont exposées au navigateur — n'y mettez jamais de clé sensible.
- Vérifier la signature des webhooks entrants (Stripe, Meta…) avant de traiter la requête.
- Si un secret a fui dans l'historique Git, le considérer comme compromis et le faire tourner.
Vous voulez un audit de sécurité complet de votre app Next.js ?
Voir notre offre Sécurité WebEn résumé
La sécurité d'une app Next.js n'est pas une fonctionnalité qu'on ajoute à la fin, c'est une hygiène : headers, CSP, autorisations serveur, validation des entrées, gestion des secrets. Chacun de ces points est simple pris isolément ; c'est leur absence cumulée qui crée les incidents. La bonne nouvelle : une fois en place, ça protège durablement.
Pour aller plus loin
Un projet en tête ?
Audit gratuit sous 48h.
Parler de mon projet