Los source maps en producción filtran tu código fuente
Los source maps (archivos .js.map) permiten a los navegadores mapear el código minificado de vuelta a tu código original. Si se sirven públicamente en producción, cualquiera puede reconstruir tu código sin minificar, comentarios incluidos.
Qué es
Las herramientas de build generan source maps para facilitar la depuración. Cuando el bundle minificado referencia un archivo .map que también está desplegado, el navegador — y cualquier persona — puede descargar el código original.
Esto expone lógica interna, nombres, comentarios TODO y a veces valores hardcodeados que revelan cómo funcionan tu backend y tu autenticación.
Por qué importa
Un código legible hace mucho más fácil que los atacantes encuentren fallos de lógica, endpoints ocultos y validaciones que solo se ejecutan en el cliente.
También puede filtrar secretos o URLs internas que se asumían 'escondidas' dentro del bundle.
Cómo solucionarlo
Apaga los source maps del navegador en los builds de producción.
// next.config.js
module.exports = { productionBrowserSourceMaps: false };Si necesitas source maps para el monitoreo de errores, súbelos a tu rastreador de errores (p. ej. Sentry) y quítalos del build público en lugar de servirlos.
Después de desplegar, solicita una de las URLs .map de tu bundle. Debería devolver 404, no el source map en JSON.
Preguntas frecuentes
¿Los source maps son siempre malos?
No: son valiosísimos para depurar. El problema es servirlos públicamente en producción. Mantenlos en tu pipeline de monitoreo.
¿La minificación protege mi código?
Solo superficialmente. Con un source map público, la minificación se revierte por completo a código legible.
¿Tu app está afectada?
AppSafe verifica este y docenas de problemas más en un solo escaneo gratis.
Escanear mi app gratisGuías relacionadas
API keys expuestas en el JavaScript del cliente
Todo lo que va en tu bundle es público. Trátalo como tal.
Archivos .env expuestos: cómo los atacantes encuentran tus secretos
Un solo .env accesible puede entregar todo tu stack.
Content-Security-Policy (CSP): qué es y cómo agregarla
El encabezado que impide que se ejecuten scripts inyectados.