highCWE-312OWASP A02:2021

Cadena de Conexión con Contraseña Inline

Una 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.

Cómo Funciona

Una cadena de conexión como postgresql://myuser:mypassword@prod-db.example.com/appdb parece conveniente para hardcodear, pero en el momento en que toca tu historial de git queda comprometida para siempre — incluso si borras la línea después. Herramientas automatizadas escanean GitHub en busca de patrones como postgresql:// y mysql:// con contraseñas continuamente. Un commit público expone toda tu base de datos.

Código Vulnerable
// MAL: cadena de conexión completa con contraseña hardcodeada en el código
const pool = new Pool({
  connectionString: 'postgresql://appuser:Sup3rS3cr3t!@prod-db.rds.amazonaws.com/myapp'
});
Código Seguro
// BIEN: cadena de conexión almacenada en variable de entorno
const pool = new Pool({
  connectionString: process.env.DATABASE_URL
  // DATABASE_URL=postgresql://appuser:password@host/db (en .env, nunca commiteado)
});

Ejemplo Real

Escáneres automatizados como TruffleHog y Gitleaks escanean repositorios públicos de GitHub 24/7 y encuentran credenciales de base de datos hardcodeadas en minutos. En 2024, investigadores encontraron más de 100,000 cadenas de conexión válidas en repos públicos de GitHub — la mayoría seguían activas.

Cómo Prevenirlo

  • Mueve todas las cadenas de conexión a variables de entorno inmediatamente y agrégalas a .env (que está en .gitignore)
  • Si las credenciales alguna vez fueron commiteadas, rótalas ahora — el historial de git es permanente y la contraseña filtrada no sirve de nada una vez rotada
  • Usa git-secrets o gitleaks como pre-commit hook para prevenir que las credenciales sean commiteadas
  • Audita tu historial completo de git con: git log -S 'postgresql://' para encontrar fugas pasadas
  • Usa un gestor de secretos para producción — nunca archivos .env en entornos de producción

Tecnologías Afectadas

Node.jsPythonGo

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas