Host de Base de Datos Hardcodeado
El hostname y puerto de tu base de datos están hardcodeados en el código fuente en lugar de variables de entorno, exponiendo la topología de tu infraestructura y haciendo los despliegues inflexibles.
Cómo Funciona
Hardcodear db.prod.example.com:5432 en tu código fuente expone tu topología de infraestructura interna a cualquiera que lea el código. Incluso si la base de datos requiere autenticación, conocer el hostname hace el reconocimiento más fácil. También hace que la gestión de entornos sea una pesadilla — cada entorno (dev, staging, prod) necesita cambios de código en lugar de simplemente cambiar variables de entorno.
// MAL: host de base de datos hardcodeado en el código fuente
const pool = new Pool({
host: 'db.prod.internal.example.com', // expuesto en el código fuente
port: 5432,
database: 'myapp_prod',
user: process.env.DB_USER,
password: process.env.DB_PASSWORD
});// BIEN: todos los detalles de conexión vienen de variables de entorno
const pool = new Pool({
connectionString: process.env.DATABASE_URL
// DATABASE_URL cubre host, puerto, nombre de bd, usuario, contraseña en una sola var
});Ejemplo Real
Durante una auditoría de seguridad de la configuración de un proyecto open source, el hostname de la base de datos de producción fue descubierto en un archivo de configuración commiteado. Aunque las credenciales estaban en variables de entorno, el hostname permitió a los atacantes mapear la topología de red interna de la empresa y apuntar ese host específico para otros ataques.
Cómo Prevenirlo
- Usa una sola variable de entorno DATABASE_URL que codifique todos los detalles de conexión
- Si necesitas variables separadas, usa DB_HOST, DB_PORT, DB_NAME desde variables de entorno — nunca hardcodeadas
- Audita tu código fuente en busca de hostnames internos y direcciones IP con una regex como \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
- Trata los hostnames de infraestructura como secretos — revelan tu topología a los atacantes
- Usa service discovery o alias DNS en tu VPC en lugar de hardcodear hostnames específicos
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Conexión a Base de Datos Sin Cifrado
highTu conexión a la base de datos no usa SSL/TLS, lo que significa que todas las consultas y resultados viajan por la red en texto plano y pueden ser interceptados.
Base de Datos Accesible Públicamente
criticalTu base de datos está vinculada a 0.0.0.0 o expuesta en una IP pública sin VPC o firewall, haciéndola directamente accesible desde internet.
Credenciales de Base de Datos por Defecto
criticalTu base de datos usa credenciales predeterminadas de fábrica como postgres:postgres, root:root o admin:admin — lo primero que prueba cualquier atacante.
Cadena de Conexión con Contraseña Inline
highUna cadena de conexión a base de datos con contraseña en texto plano está hardcodeada en tu código fuente, comprometiendo tus credenciales de base de datos en el control de versiones.