Variables de Entorno de Dev en Producción
Usar credenciales de desarrollo (API keys de prueba, URLs de base de datos local, keys de pago sandbox) en producción pone en riesgo a usuarios reales.
Cómo Funciona
Las variables de entorno de desarrollo frecuentemente apuntan a servicios de prueba, configuraciones menos seguras o servicios con rate limits más relajados. Usar keys de prueba de Stripe en producción significa que no se procesan pagos reales. Usar una URL de base de datos local en producción enruta datos de usuarios a la base de datos incorrecta.
// MAL: credenciales de prueba/dev usadas en producción
STRIPE_SECRET_KEY=sk_test_4eC39HqLyjWDarjtT1zdp7dc # key de prueba — ¡los cobros no son reales!
DATABASE_URL=postgresql://localhost:5432/myapp_dev # DB local — entorno incorrecto
NEXT_PUBLIC_API_URL=http://localhost:3000 # localhost — nada funciona en prod// BIEN: credenciales específicas de producción en el entorno de producción
STRIPE_SECRET_KEY=sk_live_... # key live — cobros reales
DATABASE_URL=postgresql://host-prod:5432/myapp_prod # DB de producción
NEXT_PUBLIC_API_URL=https://myapp.com # URL de producciónEjemplo Real
Varias startups han lanzado a producción con keys de prueba de Stripe configuradas, resultando en usuarios que completan el flujo de checkout pero sin cobros reales procesados — llevando a pérdida de ingresos y confusión de usuarios hasta que el error fue detectado.
Cómo Prevenirlo
- Usa nombres de variables específicos por entorno y documenta qué valores se requieren para cada entorno
- Agrega un script de validación al inicio que verifique valores conocidos de solo producción (por ejemplo, prefijo de key live de Stripe 'sk_live_')
- Usa archivos .env.production y .env.development separados, nunca compartiendo valores entre ellos
- Audita todas las variables de entorno antes de cada deployment a producción
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
NODE_ENV No Configurado como Production
mediumCorrer Node.js sin NODE_ENV=production habilita mensajes de error detallados, deshabilita optimizaciones de caché y puede activar middleware solo para desarrollo.
Modo Debug Activo en Producción
mediumEl modo debug habilitado en producción expone estado interno, habilita logging detallado y a veces activa endpoints de debugging interactivos que los atacantes pueden explotar.
Sin Endpoint de Health Check
lowSin un endpoint /health, los load balancers y orquestadores no pueden verificar que tu aplicación realmente funciona antes de enrutar tráfico hacia ella.
Sin Monitoreo de Errores
lowSin monitoreo de errores, los errores de producción son invisibles hasta que un usuario los reporta — lo cual la mayoría nunca hace.