Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Comparar la configuración entre entornos

5 tareas · 40 min · Principiante

«Pruebas pasa todas las revisiones y producción tiene la misma configuración.» Casi nunca es la misma: cada entorno arrastra un cambio hecho a mano, un perfil que no pisa lo que creía pisar o una caché que cambia cómo se leen las variables. Nogal Negro te entrega la comparación de ajustes de la tienda, los dos archivos de propiedades de la API de distribución y la salida de las herramientas de Laravel en producción, con una búsqueda en el código del portal de autores.

0 de 5 · 0%

Objetivo de la sala

«Pruebas pasa todas las revisiones y producción tiene la misma configuración.» Casi nunca es la misma: cada entorno arrastra un cambio hecho a mano, un perfil que no pisa lo que creía pisar o una caché que cambia cómo se leen las variables. Nogal Negro te entrega la comparación de ajustes de la tienda, los dos archivos de propiedades de la API de distribución y la salida de las herramientas de Laravel en producción, con una búsqueda en el código del portal de autores.

La prevención que propone OWASP para la configuración incorrecta tiene una frase que conviene llevar a la revisión: un proceso de endurecimiento repetible y automatizado, con la misma configuración en todos los entornos y credenciales distintas en cada uno. Que cambien los nombres de servidor, las bases de datos y las claves es lo esperado. Que cambie el endurecimiento es un hallazgo, y es más grave cuando el entorno más débil es producción.

Comparar es la técnica, y cada framework trae algo para hacerlo: Django compara un módulo de ajustes con otro, Spring muestra la configuración efectiva y de dónde salió cada valor, y Laravel resume la suya con php artisan about y config:show.

Responde para continuar

¿Qué debería cambiar entre pruebas y producción en la configuración de un framework?

Ver pista de ayuda

Recuerda la clave compartida entre producción y preproducción de la segunda sala.

manage.py diffsettings muestra en qué difieren los ajustes cargados de los valores por defecto de Django o, con --default, de otro módulo de ajustes. Con la salida unificada, cada diferencia aparece en dos líneas: la del módulo de referencia y la del que se revisa. El trabajo del auditor es separar las diferencias esperadas (servidores, bases de datos, claves) de las que tocan el endurecimiento.

Abre tienda-diffsettings.txt. El encabezado explica qué signo corresponde a cada entorno.

Responde para continuar

¿Qué ajuste de seguridad de la tienda es más débil en producción que en pruebas? Escribe su nombre.

Ver pista de ayuda

Descarta primero los pares que solo cambian un nombre de servidor o una clave.

En Spring Boot, application.properties lo leen todos los perfiles y application-prod.properties solo cambia las claves que repite exactamente. Una clave mal escrita no produce ningún error: es una propiedad más que nadie lee, y el valor del archivo base sigue en pie. El equipo cree haber apagado algo que sigue encendido.

Compara distribucion-application.txt con distribucion-application-prod.txt, clave por clave. Esto explica una de las respuestas que encontraste en el registro del proxy de la cuarta sala.

Responde para continuar

¿Qué propiedad del perfil de producción no anula nada porque está mal escrita? Escríbela tal como aparece.

Ver pista de ayuda

Busca en el perfil de producción una clave que casi coincide con una del archivo base.

En producción, Laravel suele guardar toda la configuración en un solo archivo con config:cache. Su documentación advierte la consecuencia: desde ese momento el archivo .env no se carga, y la función env() solo devuelve variables del sistema. Por eso env() solo debe llamarse dentro de los archivos de config/, que son los que quedan en caché con su valor ya resuelto. Una llamada en cualquier otro sitio devuelve su valor de reserva en producción y el valor correcto en el portátil de quien la escribió.

Lee autores-about.txt para confirmar si la configuración está en caché y de dónde sale la variable. Después busca en autores-busqueda-env.txt la llamada que está fuera de config/ y qué decide.

Responde para continuar

¿Qué archivo del portal de autores llama a env() fuera de config/ y deja de leer el .env con la configuración en caché? Escribe su ruta tal como aparece.

Ver pista de ayuda

Fíjate en qué carpeta empieza cada ruta de la búsqueda.

Los tres hallazgos de esta sala tienen algo en común: el archivo dice una cosa y el proceso hace otra, y nadie lo vería leyendo solo el repositorio. El webhook de pagos que la tercera sala daba por bien protegido no verifica la firma en producción. La respuesta no es mirar más, sino comparar de forma automática: la configuración efectiva de cada entorno contra una de referencia, en el despliegue, con la comprobación de cada framework y un fallo que detenga la publicación.

Responde para continuar

¿Qué control habría detectado los tres hallazgos antes de llegar a producción?

Ver pista de ayuda

Ninguno de los tres hallazgos se ve en el archivo; se ve en lo que el proceso carga.

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