Les source maps en production divulguent votre code source
Les source maps (fichiers .js.map) permettent aux navigateurs de relier le code minifié à votre code source original. Servies publiquement en production, elles laissent n’importe qui reconstruire votre code non minifié, commentaires compris.
Ce que c’est
Les outils de build produisent des source maps pour faciliter le débogage. Quand le bundle minifié référence un fichier .map lui aussi déployé, le navigateur — et n’importe qui — peut télécharger le code source original.
Cela expose la logique interne, les noms, les commentaires TODO et parfois des valeurs codées en dur qui révèlent le fonctionnement de votre backend et de votre authentification.
Pourquoi ça compte
Un code source lisible rend bien plus facile, pour les attaquants, la découverte de failles de logique, d’endpoints cachés et de validations qui ne s’exécutent que côté client.
Il peut aussi divulguer des secrets ou des URLs internes que l’on croyait « cachés » dans le bundle.
Comment corriger
Désactivez les source maps navigateur pour les builds de production.
// next.config.js
module.exports = { productionBrowserSourceMaps: false };Si vous avez besoin de source maps pour le monitoring d’erreurs, envoyez-les à votre outil de suivi d’erreurs (p. ex. Sentry) et retirez-les du build public au lieu de les servir.
Après le déploiement, demandez l’une des URLs .map de votre bundle. Elle doit renvoyer un 404, pas la source map JSON.
FAQ
Les source maps sont-elles toujours mauvaises ?
Non — elles sont précieuses pour le débogage. Le problème, c’est de les servir publiquement en production. Gardez-les plutôt dans votre pipeline de monitoring.
La minification protège-t-elle mon code ?
Seulement en surface. Avec une source map publique, la minification est entièrement inversée pour revenir à un code source lisible.
Votre app est-elle concernée ?
AppSafe détecte ce problème et des dizaines d’autres en un seul scan gratuit.
Scanner mon app gratuitementGuides liés
API keys exposées dans le JavaScript côté client
Tout ce qui est dans votre bundle est public. Traitez-le comme tel.
Fichiers .env exposés : comment les attaquants trouvent vos secrets
Un seul .env accessible peut livrer toute votre stack.
Content-Security-Policy (CSP) : ce que c’est et comment en ajouter une
L’en-tête qui empêche les scripts injectés de s’exécuter.