🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónSecretos y lógica de autorización en el cliente
5 tareas · 40 min · Principiante
Todo lo que se compila para el navegador se entrega, completo, a quien abra la página. Eso incluye las variables de configuración y las reglas que deciden qué pantalla ve cada rol. La app de pacientes de Turnoverde se compila con Vite. Te entregan su archivo de variables de producción, el catálogo de credenciales, una búsqueda en lo publicado, sus rutas y el registro del servidor para las rutas de administración.
Objetivo de la sala
Todo lo que se compila para el navegador se entrega, completo, a quien abra la página. Eso incluye las variables de configuración y las reglas que deciden qué pantalla ve cada rol. La app de pacientes de Turnoverde se compila con Vite. Te entregan su archivo de variables de producción, el catálogo de credenciales, una búsqueda en lo publicado, sus rutas y el registro del servidor para las rutas de administración.Las herramientas de compilación de aplicaciones de una sola página leen variables de entorno y las sustituyen por su valor dentro del código al compilar. Para no filtrar todo el entorno, solo exponen al navegador las que llevan un prefijo acordado: VITE_ en Vite, NEXT_PUBLIC_ en Next.js, REACT_APP_ en Create React App. Una variable con ese prefijo deja de ser configuración y pasa a ser texto dentro de un archivo JavaScript que cualquiera descarga. Por eso esas variables nunca deben llevar datos sensibles.
No todo lo que parece una clave es secreto. Muchos proveedores emiten claves públicas pensadas para el navegador, limitadas por dominio o por servicio. La pregunta no es si el valor está en el cliente, sino si su dueño lo diseñó para estar ahí. MITRE agrupa la credencial secreta incrustada en el código bajo CWE-798.
Responde para continuar
¿Qué decide si una variable con el prefijo `VITE_` es un hallazgo?
Ver pista de ayuda
El prefijo ya garantiza que el valor está en el paquete publicado.
Abre el laboratorio. Cruza env-produccion.txt con catalogo-credenciales.txt, y confirma con busqueda-en-paquete.txt qué valores aparecen de verdad en los archivos publicados. Una variable sin el prefijo no llega al paquete aunque esté en el mismo archivo.
Responde para continuar
¿Qué variable del archivo de producción pone en el paquete publicado una credencial que su catálogo marca solo para servidor? Escríbela tal como aparece.
Ver pista de ayuda
Hay dos credenciales de solo servidor; una de ellas no aparece en la búsqueda.
En rutas.jsx, el panel de administración se muestra solo si el rol guardado en localStorage es admin. Ese valor lo controla el navegador: cualquiera puede cambiarlo, o llamar a la API sin pasar por la app. Una guarda de rutas en el cliente es una comodidad de interfaz; quien autoriza es el servidor, en cada petición, con el rol que él mismo lee de la sesión. MITRE describe el error de confiar en el cliente para una regla de seguridad como CWE-602.
Lee registro-api-admin.txt. El rol que aparece en cada línea es el de la sesión en el servidor.
Responde para continuar
¿Qué cuenta sin rol de administración logró que el servidor ejecutara una acción administrativa? Escríbela tal como aparece en el registro.
Ver pista de ayuda
Separa las rutas de administración que responden 403 a otros roles de las que no.
El registro muestra que una ruta de administración sí comprueba el rol y otras no. El equipo propone dos cambios: mover el rol de localStorage a una cookie, y añadir la comprobación de rol a las rutas que no la tienen.
Responde para continuar
¿Cuál de los dos cambios cierra el hallazgo de autorización?
Ver pista de ayuda
El servidor ya sabe el rol de cada sesión; falta que lo use.
La llave privada de la pasarela está en dos archivos publicados, y en las versiones anteriores de la app que puedan estar en cachés y copias.
Responde para continuar
¿Qué secuencia corresponde a la llave privada de pagos expuesta en el paquete?
Ver pista de ayuda
Lo publicado ya se descargó; borrarlo no lo hace secreto otra vez.
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
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.