🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónModo depuración y consolas de diagnóstico
5 tareas · 35 min · Principiante
Cada framework trae un modo pensado para quien programa, y ese modo no distingue entre el desarrollador y un visitante cualquiera. Ediciones Nogal Negro tiene cinco aplicaciones escritas con cinco frameworks distintos, y su monitoreo externo guardó un error de cada una durante la semana. Te entregan esas respuestas, la forma en que arranca cada servicio y las notas del equipo. Todo es lectura: no se provoca ningún error ni se abre ninguna consola.
Objetivo de la sala
Cada framework trae un modo pensado para quien programa, y ese modo no distingue entre el desarrollador y un visitante cualquiera. Ediciones Nogal Negro tiene cinco aplicaciones escritas con cinco frameworks distintos, y su monitoreo externo guardó un error de cada una durante la semana. Te entregan esas respuestas, la forma en que arranca cada servicio y las notas del equipo. Todo es lectura: no se provoca ningún error ni se abre ninguna consola.Todo framework web tiene un interruptor de depuración. En Django es el ajuste DEBUG; en Laravel, la variable APP_DEBUG; en Express, el detalle de los errores depende del entorno que declara la variable NODE_ENV; en Flask, el modo se enciende con una opción al arrancar su servidor de desarrollo. Encendido, el framework enseña lo que necesita quien está programando: la traza, el código alrededor de la línea que falló, rutas de archivo, a veces los ajustes y las consultas.
Hay dos niveles de gravedad. El primero es una fuga de información: el visitante recibe el plano de la aplicación. El segundo es peor: algunos depuradores son interactivos. La documentación de Flask advierte que el depurador de su servidor de desarrollo permite ejecutar código Python desde el navegador, que lo protege un PIN y que ese PIN no debe tomarse como garantía. Una consola así publicada ya no es una fuga: es una puerta.
El Top 10 de OWASP de 2025 recoge ambos casos dentro de A02, configuración incorrecta: errores que enseñan trazas al usuario y ajustes de frameworks que no tienen valores seguros.
Responde para continuar
¿Por qué el depurador interactivo de Flask en producción es más grave que una traza de error?
Ver pista de ayuda
Piensa en la diferencia entre leer información y poder actuar sobre el servidor.
Un ajuste escrito en un archivo no dice nada hasta que se sabe qué archivo carga el proceso y con qué orden arranca. Por eso la revisión de configuración empieza por la unidad de servicio y no por el repositorio: ahí se ve el módulo de ajustes que se usa, las variables de entorno que se pasan y si lo que corre es un servidor de producción o el de desarrollo que trae el framework.
La documentación de Flask es clara en este punto: ni su servidor de desarrollo ni su depurador deben correr en producción. Abre servicios-produccion.txt y lee la orden de arranque de cada servicio.
Responde para continuar
¿Qué unidad de servicio arranca un servidor de desarrollo con el depurador interactivo encendido? Escribe su nombre tal como aparece.
Ver pista de ayuda
Busca la opción de depuración en la columna de la orden de arranque.
La página de depuración de Django incluye los ajustes de la aplicación. Para no regalar claves, tapa los ajustes cuyo nombre contiene ciertas palabras en inglés (las que indican una clave, una contraseña, un secreto, una firma, un token o una API) y lo hace por coincidencia parcial dentro del nombre. Lo que no hace es mirar el valor: si el nombre no contiene ninguna de esas piezas, el valor sale tal cual.
Eso es un problema real en equipos que nombran sus ajustes en español. Y aunque el filtro funcione, la misma página sigue mostrando rutas de archivo, nombres de servidores internos y el resto de la configuración. Abre respuesta-tienda-500.txt y lee la sección de ajustes línea por línea.
Responde para continuar
¿Qué ajuste de la tienda muestra una credencial en claro en la página de depuración? Escribe su nombre tal como aparece.
Ver pista de ayuda
Busca un valor que no esté tapado con asteriscos y que parezca una clave.
Ahora compara las cinco respuestas guardadas. Cuenta como detalle interno cualquier cosa que solo le sirve a quien conoce el código: una traza, una ruta de archivo del servidor, el mensaje de la excepción, ajustes o el nombre de un servidor interno. Una página genérica con el código de estado y la ruta que se pidió no cuenta: es lo que debería recibir cualquier visitante.
Fíjate en que la nota del equipo sobre la tienda no coincide con lo que muestra su respuesta. Eso también es un hallazgo, y lo resuelve la sala de valores por defecto.
Responde para continuar
¿Cuántos de los cinco servicios entregan al visitante algún detalle interno en su respuesta de error? Escribe solo el número.
Ver pista de ayuda
Abre los cinco archivos de respuesta y separa los genéricos de los que enseñan código o ajustes.
Los tres casos tienen la misma causa: el modo de desarrollo encendido en producción, cada uno con el interruptor de su framework. La remediación no es esconder las páginas de error, porque el error seguiría generándose con todo su detalle, sino apagar el modo en el arranque de cada servicio y dejar el detalle en el registro del servidor. El orden lo marca la gravedad: primero lo que permite actuar, después lo que entrega credenciales, después lo que entrega el plano.
Responde para continuar
¿Qué recomendación cierra los hallazgos de esta sala?
Ver pista de ayuda
El error se sigue generando con todo su detalle aunque cambie quién lo ve.
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.