Archivos .env expuestos: cómo los atacantes encuentran tus secretos
Un archivo .env guarda contraseñas de bases de datos, API keys y secretos de firma. Si es accesible desde la web — en /.env, /.env.production o un backup como /.env.backup — cualquiera puede descargarlo y tomar control de tus servicios.
Qué es
Los archivos de entorno deben quedarse en el servidor y nunca servirse a los clientes. Un handler estático mal configurado, una copia perdida en el web root o un framework que sirve dotfiles pueden exponerlos.
Los atacantes no adivinan: ejecutan escaneos automatizados que solicitan /.env y docenas de variantes contra millones de hosts continuamente. Un archivo accesible se encuentra en cuestión de horas.
Por qué importa
Estos archivos suelen contener URLs de bases de datos de producción, claves secretas de Stripe, secretos de firma JWT y credenciales de la nube. Una sola fuga puede significar robo total de datos, cargos fraudulentos y toma de cuentas.
Como los secretos siguen siendo válidos hasta que se rotan, el daño continúa mucho después de eliminar el archivo, salvo que rotes todo lo que contenía.
Cómo solucionarlo
Deniega el acceso a .env y otros dotfiles en la configuración de tu servidor web o proxy.
location ~ /\.(?!well-known).* {
deny all;
return 404;
}Guarda la configuración fuera de cualquier directorio que el servidor sirva estáticamente, y asegúrate de que tu build no copie archivos .env al resultado publicado.
Si un archivo llegó a ser accesible, trata cada secreto que contenía como comprometido y rota de inmediato las contraseñas de bases de datos, API keys y tokens.
Preguntas frecuentes
Eliminé el archivo, ¿ya estoy a salvo?
No hasta que rotes los secretos. Quien lo haya descargado sigue teniendo credenciales válidas hasta que las cambies.
¿Cómo sé si el mío está expuesto?
Solicita https://tudominio.com/.env en un navegador. Si ves líneas KEY=value en lugar de un 404, está expuesto. AppSafe lo verifica automáticamente.
¿Tu app está afectada?
AppSafe verifica este y docenas de problemas más en un solo escaneo gratis.
Escanear mi app gratisGuías relacionadas
API keys expuestas en el JavaScript del cliente
Todo lo que va en tu bundle es público. Trátalo como tal.
Los source maps en producción filtran tu código fuente
Los .map publicados entregan tu código fuente original.
CORS mal configurado: las trampas del comodín y del reflejo
Permite todos los orígenes y cualquier sitio podrá leer tu API.