Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Mapas de fuente y paquetes publicados de más

5 tareas · 35 min · Principiante

El código que llega al navegador está comprimido, pero a menudo viaja con un mapa que lo devuelve a su forma original, comentarios incluidos. Y un paquete que se publica en el registro de npm lleva lo que diga su configuración, no lo que el equipo cree. Turnoverde te entrega la configuración de compilación de su app de pacientes, lo publicado en su servidor y la prueba de empaquetado de su SDK para consultorios antes de publicar la versión nueva.

0 de 5 · 0%

Objetivo de la sala

El código que llega al navegador está comprimido, pero a menudo viaja con un mapa que lo devuelve a su forma original, comentarios incluidos. Y un paquete que se publica en el registro de npm lleva lo que diga su configuración, no lo que el equipo cree. Turnoverde te entrega la configuración de compilación de su app de pacientes, lo publicado en su servidor y la prueba de empaquetado de su SDK para consultorios antes de publicar la versión nueva.

Al compilar, el código de una aplicación de una sola página se une y se comprime en pocos archivos. Un mapa de fuente es un JSON aparte que relaciona cada posición del archivo comprimido con el archivo y la línea originales; muchas veces incluye además el código original completo, con sus comentarios, en el campo sourcesContent. El navegador lo descarga cuando las herramientas de desarrollo están abiertas y encuentra al final del archivo un comentario sourceMappingURL que apunta al mapa.

Publicarlo no es una vulnerabilidad por sí mismo: el código del cliente ya es público. Lo que cambia es el costo de leerlo, y lo que se cuela en los comentarios: rutas internas, notas de deuda técnica, nombres de módulos que no se usan. Vite acepta build.sourcemap: 'hidden' para generar el mapa sin el comentario que lo anuncia, de modo que se pueda subir a un servicio privado de errores sin publicarlo.

Responde para continuar

¿Qué expone un mapa de fuente publicado que no exponía ya el archivo comprimido?

Ver pista de ayuda

El mapa solo describe el código que se compiló para el navegador.

Abre el laboratorio. Lee vite.config.js, listado-publicado.txt y final-de-index.txt para confirmar que el mapa está publicado y anunciado. Luego lee mapa-extracto.json: el campo sources dice qué archivos originales hay, y sourcesContent trae su contenido.

Responde para continuar

¿Qué ruta interna de la API revela el mapa de fuente como pendiente de exigir sesión? Escríbela tal como aparece.

Ver pista de ayuda

Busca el comentario de deuda técnica en el archivo de herramientas de soporte.

Un paquete de npm incluye lo que dice su package.json. El campo files funciona como lista de permitidos; si falta, se incluye todo salvo un puñado de exclusiones fijas. La forma segura de saber qué saldrá es mirar la lista real: npm pack --dry-run la muestra sin publicar nada. Una vez publicada una versión, cualquiera pudo descargarla.

Lee sdk-package.json, npm-pack-dry-run.txt y pruebas-README.txt.

Responde para continuar

¿Qué archivo del paquete del SDK lleva datos de pacientes reales? Escribe solo su nombre, sin la carpeta.

Ver pista de ayuda

La nota del equipo explica cuál de los datos de prueba no es inventado.

El .gitignore del SDK excluye los archivos de entorno y la carpeta de datos de prueba, y el equipo daba por hecho que eso también valía para el paquete. npm usa el .gitignore como lista de exclusión solo cuando no hay un .npmignore.

Responde para continuar

¿Por qué entraron al paquete archivos que el `.gitignore` del SDK excluye?

Ver pista de ayuda

Compara el contenido de los dos archivos de exclusión.

Hay dos hallazgos: el mapa de fuente de la app y el contenido del SDK, que todavía no se ha publicado.

Responde para continuar

¿Qué combinación de arreglos corresponde a los dos hallazgos?

Ver pista de ayuda

Un arreglo que depende de recordar cada archivo nuevo vuelve a fallar.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad