##Impact Les en-têtes de sécurité manquants peuvent être exploités pour effectuer du détournement de clics, des scripts intersites (XSS) ou collecter des informations sur l'environnement du serveur [S2]. Lorsque des en-têtes tels que Content-Security-Policy (CSP) ou X-Frame-Options sont appliqués de manière incohérente sur les routes, les attaquants peuvent cibler des chemins non protégés spécifiques pour contourner les contrôles de sécurité à l'échelle du site [S2].
Cause première
Next.js permet aux développeurs de configurer les en-têtes de réponse dans next.config.js à l'aide de la propriété headers [S2]. Cette configuration utilise une correspondance de chemin qui prend en charge les caractères génériques et les expressions régulières [S2]. Les vulnérabilités de sécurité proviennent généralement de :
- Couverture incomplète du chemin : les modèles génériques (par exemple,
/path*) peuvent ne pas couvrir tous les sous-itinéraires prévus, laissant les pages imbriquées sans en-têtes de sécurité [S2]. - Divulgation d'informations : par défaut, Next.js peut inclure l'en-tête
X-Powered-By, qui révèle la version du framework, à moins qu'il ne soit explicitement désactivé via la configurationpoweredByHeader[S2]. - Mauvaise configuration CORS : des en-têtes
Access-Control-Allow-Originmal définis dans la baieheaderspeuvent permettre un accès non autorisé d'origine croisée aux données sensibles [S2].
Réparations concrètes
- Modèles de chemin d'audit : assurez-vous que tous les modèles
sourcedansnext.config.jsutilisent des caractères génériques appropriés (par exemple,/:path*) pour appliquer les en-têtes globalement lorsque cela est nécessaire [S2]. - Désactiver les empreintes digitales : définissez
poweredByHeader: falsedansnext.config.jspour empêcher l'envoi de l'en-têteX-Powered-By[S2]. - Restreindre CORS : définissez
Access-Control-Allow-Originsur des domaines de confiance spécifiques plutôt que sur des caractères génériques dans la configurationheaders[S2].
Comment FixVibe le teste
FixVibe pourrait effectuer une sonde fermée active en explorant l'application et en comparant les en-têtes de sécurité de différentes routes. En analysant l'en-tête X-Powered-By et la cohérence de Content-Security-Policy sur différentes profondeurs de chemin, FixVibe peut identifier les lacunes de configuration dans next.config.js.
