criticalCWE-798A02:2021

API Keys Hardcodeadas

API keys, tokens o secretos escritos directo en el código fuente, visibles para cualquiera con acceso al repo — incluyendo repos públicos de GitHub.

Cómo Funciona

Cuando pegas una API key directo en el código, queda en el historial de git. Aunque la borres después, la key vive en cada clon y fork para siempre. Bots automatizados escanean GitHub 24/7 buscando patrones como `sk-`, `AKIA`, `ghp_` y `ghs_`, y usan las keys encontradas en minutos.

Código Vulnerable
// MAL: key pegada directo en el código
const openai = new OpenAI({
  apiKey: 'sk-proj-abc123xyz789...'
});
const stripe = new Stripe('sk_live_51Abc...');
Código Seguro
// BIEN: carga desde variables de entorno
const openai = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY
});
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);

Ejemplo Real

En 2024, un dev hizo commit accidental de una key de AWS (AKIA...) a un repo público. En 4 minutos, los bots ya habían levantado cientos de instancias EC2 para minar crypto, generando una factura de $47,000 antes de que AWS suspendiera la cuenta.

Cómo Prevenirlo

  • Guarda todos los secretos en variables de entorno y cárgalos con process.env
  • Agrega .env al .gitignore antes de tu primer commit — nunca después
  • Usa git-secrets o truffleHog en tu CI para bloquear commits con secretos
  • Rota cualquier key que haya sido commiteada, aunque sea por un momento — asume que está comprometida
  • Activa el secret scanning de GitHub (gratis para repos públicos)

Tecnologías Afectadas

nodejsNext.jsReactPythonGo

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas