mediumCWE-540A02:2021

.gitignore Inadecuado

Un .gitignore que no cubre archivos .env, artefactos de build y configuraciones de IDE puede llevar a que secrets o datos sensibles sean accidentalmente commiteados.

Cómo Funciona

Si .env, .env.local y archivos similares no están en .gitignore, un 'git add .' commitea todos tus secrets. De igual forma, los archivos de configuración de IDE frecuentemente contienen tokens de API, configuraciones personales o rutas absolutas que filtran información de la máquina del desarrollador.

Código Vulnerable
# MAL: .gitignore mínimo que omite archivos de secrets comunes
node_modules/
dist/
# Faltan: .env, .env.local, .env.production, *.pem, .DS_Store
Código Seguro
# BIEN: .gitignore completo para un proyecto Node.js
node_modules/
dist/
.next/
# Secrets
.env
.env.local
.env.*.local
*.pem
*.key
# IDE
.vscode/settings.json
.idea/
# OS
.DS_Store
Thumbs.db

Ejemplo Real

En 2022, un desarrollador accidentalmente commiteó .env.production a un repo público de GitHub. Contenía keys de producción de Stripe, credenciales de base de datos y tokens de la API de Twilio. El repo estuvo público durante 8 horas antes de ser descubierto, resultando en cargos fraudulentos.

Cómo Prevenirlo

  • Usa las plantillas oficiales de .gitignore de GitHub como punto de partida para tu lenguaje/framework
  • Siempre incluye .env, .env.local, .env.*.local, *.pem y *.key en .gitignore
  • Corre 'git status' y revisa cada archivo antes de commitear, especialmente al configurar un proyecto por primera vez
  • Instala la configuración global de gitignore para tu SO (como .DS_Store) en ~/.gitignore_global

Tecnologías Afectadas

Node.js

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas