🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónValores por defecto inseguros por framework
5 tareas · 35 min · Principiante
«Si no tocamos nada, debería ser seguro» es la frase que más configuraciones débiles deja en producción. Cada framework decide muchos valores por quien no los escribe, y no todos los decide pensando en producción. Nogal Negro te entrega el servidor del boletín y su registro de arranque, las cabeceras de respuesta de sus cinco aplicaciones, los ajustes de la tienda con su comprobación de despliegue y el archivo base de la API de distribución.
Objetivo de la sala
«Si no tocamos nada, debería ser seguro» es la frase que más configuraciones débiles deja en producción. Cada framework decide muchos valores por quien no los escribe, y no todos los decide pensando en producción. Nogal Negro te entrega el servidor del boletín y su registro de arranque, las cabeceras de respuesta de sus cinco aplicaciones, los ajustes de la tienda con su comprobación de despliegue y el archivo base de la API de distribución.Cuando un ajuste no se escribe, su valor sale de uno de tres sitios, y conviene saber cuál antes de opinar. El primero es el valor por defecto del propio framework. El segundo es la plantilla que generó el proyecto: Django tiene DEBUG en falso como valor global, pero el archivo de ajustes que crea startproject lo pone en verdadero para comodidad de quien empieza; Laravel lee APP_DEBUG con falso como reserva, pero su archivo de ejemplo de entorno trae verdadero. El tercero es la ausencia: lo que el framework supone cuando falta una variable de entorno.
El auditor no pregunta qué valor trae el framework, sino de dónde sale el valor con el que corre este proceso.
Responde para continuar
Un proyecto Django nació de startproject y nadie cambió DEBUG en el archivo que carga producción. ¿Con qué valor corre?
Ver pista de ayuda
El valor global solo se usa cuando el archivo de ajustes no dice nada.
El componente de sesiones más usado con Express decide varias cosas por quien no las escribe: el nombre de la cookie, que es el mismo en todas las aplicaciones que no lo cambian; los atributos de esa cookie, que no la limitan a HTTPS; y el almacén, que guarda las sesiones en la memoria del proceso, algo que su propia documentación dice que no está pensado para producción. Además, Express anuncia su nombre en una cabecera de cada respuesta hasta que alguien lo desactiva.
Ninguno de esos valores es una vulnerabilidad por sí solo; todos son decisiones que nadie tomó. Abre boletin-servidor.js y cabeceras-guardadas.txt.
Responde para continuar
¿Qué nombre de cookie delata que el boletín dejó el valor por defecto de su componente de sesiones? Escríbelo tal como aparece.
Ver pista de ayuda
Compara las cookies de las cinco aplicaciones: solo una no lleva un nombre elegido por su equipo.
Express decide su entorno con la variable NODE_ENV, y cuando falta supone un valor que no es el de producción. De ese valor dependen cosas que se notan, como que el manejador de errores por defecto envíe la traza al visitante, que es lo que viste en la primera sala. La unidad del boletín no define esa variable. Lee la línea de arranque en boletin-arranque.log: el servidor imprime el entorno que cree tener.
Responde para continuar
¿En qué entorno cree estar el boletín según su propia línea de arranque? Escríbelo tal como aparece.
Ver pista de ayuda
Busca la palabra entorno en el registro.
Django no limita por defecto su cookie de sesión a HTTPS: hay que pedirlo con un ajuste. Lo mismo pasa con la cookie de CSRF. El archivo de producción de la tienda no dice nada de cookies porque, según su comentario, Django ya trae lo necesario. La comprobación de despliegue sí lo dice.
Mira la cookie de la tienda en cabeceras-guardadas.txt, compárala con las del portal de autores y de distribución, y busca después el ajuste en tienda-check-deploy.txt. Fíjate de paso en la nota del final y en cómo calcula DEBUG el archivo de producción: ahí está la respuesta a la contradicción que viste en la primera sala.
Responde para continuar
¿Qué ajuste deja la cookie de sesión de la tienda sin el atributo que la limita a HTTPS? Escribe su nombre tal como lo imprime la comprobación.
Ver pista de ayuda
De los dos avisos sobre cookies, uno es de la sesión y otro del token de formularios.
No todos los valores por defecto son débiles. Algunos frameworks eligen bien y el hallazgo es el cambio: Spring Boot publica por HTTP solo la salud de Actuator, y la consola H2 viene apagada. Distinguir los dos casos cambia la recomendación. Un valor por defecto débil se corrige escribiendo el ajuste; un valor seguro que alguien cambió se corrige quitando el cambio y preguntando por qué se hizo. Abre distribucion-application.txt.
Responde para continuar
¿Cuál de estos hallazgos no es un valor por defecto débil, sino un cambio sobre uno seguro?
Ver pista de ayuda
Mira cuál de los tres aparece escrito en un archivo de configuración.
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.