criticalCWE-312OWASP LLM09:2025

API Key de IA en el Frontend

Tu API key de OpenAI, Anthropic u otro proveedor de IA está expuesta en el código del cliente, donde cualquiera puede robarla y acumular cargos en tu cuenta.

Cómo Funciona

Las API keys de proveedores de IA son básicamente tarjetas de crédito con límite de gasto. Si incluyes OPENAI_API_KEY o ANTHROPIC_API_KEY en tu JavaScript del frontend, cualquiera que abra DevTools puede copiarla, usarla para hacer llamadas a la API y vaciar tu saldo. En Next.js, cualquier variable de entorno sin el prefijo NEXT_PUBLIC_ se queda del lado del servidor — pero los devs frecuentemente agregan el prefijo por error o llaman a las APIs de IA directo desde componentes cliente.

Código Vulnerable
// MAL: llamando a OpenAI directo desde un componente React
// El prefijo NEXT_PUBLIC_ expone esto al navegador
const client = new OpenAI({ apiKey: process.env.NEXT_PUBLIC_OPENAI_API_KEY });
Código Seguro
// BIEN: proxea todas las llamadas de IA a través de tu propio API route
// app/api/ai/route.ts — solo del lado del servidor, la key nunca llega al navegador
import { OpenAI } from 'openai';
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY }); // sin NEXT_PUBLIC_
export async function POST(req: Request) {
  // agrega verificación de auth aquí antes de llamar a la IA
}

Ejemplo Real

Este es uno de los findings más comunes en apps vibe-coded. Los devs arman una app en Next.js, agregan NEXT_PUBLIC_OPENAI_API_KEY a su .env y la deployean. Las keys son scrapeadas de repos públicos en GitHub en minutos por bots automatizados. El key scanner de OpenAI cacha algunas, pero no todas.

Cómo Prevenirlo

  • Nunca uses el prefijo NEXT_PUBLIC_ para API keys de IA — se vuelven visibles en el bundle del navegador
  • Siempre proxea las llamadas a APIs de IA a través de un route del lado del servidor (/api/ai) donde controlas auth y rate limiting
  • Agrega tus API keys de IA a archivos .env en .gitignore y rótalas inmediatamente si se exponen accidentalmente
  • Configura límites de gasto y alertas de uso en el dashboard de tu proveedor de IA
  • Usa Gitleaks o Data Hogo para escanear tu repo en busca de keys expuestas antes de cada deploy

Tecnologías Afectadas

Node.jsReactNext.js

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas