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.
// 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 });// 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
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Inyección de Prompts
highEl input del usuario se concatena directo en el prompt del LLM, permitiendo que atacantes sobreescriban tus instrucciones y hagan que la IA haga lo que ellos quieran.
Filtración de PII a Modelos de IA
highTu app manda información personal identificable — emails, nombres, contraseñas, teléfonos — a APIs de IA externas, exponiendo datos de usuarios a proveedores de modelos de terceros.
Respuesta de IA Sin Validación
mediumEl output de un LLM se renderiza o ejecuta directo sin verificar si coincide con el formato esperado o contiene contenido dañino.
Sin Sanitización del Output de IA
mediumEl HTML o código generado por un LLM se renderiza directo en la UI sin sanitización, abriendo la puerta a ataques de XSS almacenado.