socorrist.app

Mi clave de OpenAI o de otro proveedor de IA está expuesta

La clave que usa tu app para hablar con OpenAI, Anthropic o el proveedor que sea está dentro del código que se descarga cualquiera que visite tu web. Esa clave no protege datos: autoriza gasto contra tu tarjeta.

Compruébalo en tu app ahora, gratis

Esto no da la cara solo: tu app funciona igual de bien esté abierta o cerrada. La única forma de saberlo es mirar.

Solo leemos lo que tu app ya le entrega a cualquier visitante.

Por qué te pasa

Porque llamar a la API desde el navegador funciona a la primera y montar una función de servidor que haga de intermediaria no. Cuando el objetivo es ver la función de IA andando esta tarde, el camino corto gana. Muchos ejemplos oficiales, además, están escritos para ejecutarse en un servidor, y al copiarlos a una app de navegador la clave se va con ellos.

Estas claves son un caso aparte por la velocidad. Una clave de base de datos filtrada exige que alguien decida qué hacer con tus datos; una clave de IA filtrada tiene un valor inmediato y líquido para cualquiera, porque se revende el acceso. Hay bots dedicados a rastrear webs y repositorios buscando exactamente estos patrones, y encuentran una clave nueva en cuestión de horas.

La consecuencia no es sutil: es una factura. Los casos que se cuentan van de cientos a miles de euros consumidos en pocos días, y el proveedor cobra ese consumo porque técnicamente lo autorizó tu clave.

Lo que este error no significa

Arréglalo tú, gratis

Aquí el orden es el contrario al de otras claves: primero se corta, luego se arregla. Como el riesgo es económico y automático, es mejor que la función de IA de tu app deje de funcionar un rato a que siga funcionando la de otro con tu tarjeta.

  1. 1Entra en el panel de tu proveedor y revoca la clave ahora. En OpenAI está en API keys; en Anthropic, en la sección de claves de la consola. Esto rompe la función de IA de tu app de inmediato, y es lo que queremos.
  2. 2Mira el consumo de los últimos días en la sección de uso. Si ves picos que no encajan con tu tráfico real, la clave se estaba usando y conviene que hables con el proveedor: en casos de filtración suelen atender reclamaciones.
  3. 3Ponle un límite de gasto mensual a la cuenta si no lo tenía. Es la red de seguridad que hace que la próxima vez, si la hay, sea un susto y no una factura.
  4. 4Crea una clave nueva y guárdala en las variables de entorno de tu servidor, sin prefijo VITE_ ni NEXT_PUBLIC_. Si tu app no tiene parte de servidor, hay que crearla: es el trabajo real de este arreglo.
  5. 5Despliega y comprueba que la función de IA vuelve a funcionar llamando a través de tu servidor, y que en el navegador ya no aparece la clave por ningún lado.
  6. 6Añade un límite por usuario en tu propia función de servidor. Sin él, aunque la clave esté a salvo, cualquiera puede usar tu app en bucle y el gasto acaba siendo el mismo.

El último paso se salta casi todo el mundo y es el que separa un arreglo de un parche: si tu app permite llamar a la IA sin límite y sin identificarse, el coste sigue siendo ilimitado aunque la clave esté escondida.

Y esto para la parte de código

Pégaselo tal cual al agente que escribió tu app. Está redactado para que te diga lo que ha hecho, no solo para que lo haga.

Prompt para pegarle a tu agente

En mi app está publicada la clave de la API de IA en el código del navegador. Ya la he revocado.

Necesito que hagas esto:
1. Encuentra todas las llamadas al proveedor de IA en el proyecto y dime cuáles se ejecutan en el navegador.
2. Crea una función de servidor que haga de intermediaria: el navegador le manda lo que quiere preguntar y ella llama al proveedor con la clave, que se lee de una variable de entorno sin prefijo público.
3. Añade en esa función un control de uso: un límite por usuario o por sesión y un tope razonable de tamaño de petición, para que nadie pueda usar mi app como barra libre de IA.
4. Asegúrate de que si la llamada falla, el usuario ve un mensaje comprensible y el error del proveedor no se muestra tal cual en pantalla.
5. Comprueba que no queda ninguna referencia a la clave en el código que se empaqueta para el navegador.

Dime al terminar qué variable de entorno tengo que dar de alta y dónde, y confírmame que no lleva prefijo VITE_ ni NEXT_PUBLIC_.

Si el escáner ha encontrado algo, no lo toques con prisa

Cerrar una puerta abierta tiene un orden: primero se corta el acceso, después se comprueba en los registros si alguien entró, y solo entonces se despliega. Hacerlo al revés deja la app caída y borra el rastro de lo que pasó. Si prefieres no hacerlo solo, elige cuándo lo hacemos.

Cita a partir de mañana

Agendar revisión

99 €

Elegimos hueco, miro tu app con calma y te digo qué pasa y cómo se arregla.

  • Sesión de trabajo en directo contigo
  • Diagnóstico del error y del riesgo real
  • Te quedas con el arreglo aplicado

Hoy, en cola prioritaria

Rescate exprés

199 €

Entras en la cola de hoy. Reservas hueco y lo dejamos resuelto en el día.

  • Hueco el mismo día
  • Prioridad sobre las revisiones agendadas
  • Mismo trabajo, antes

Quién lo arregla

Marc Sala

IT Manager

  • Analista de ciberseguridad certificado por Google

No es un rating anónimo de un marketplace: es la persona que va a entrar en tu app. Reviso el código, encuentro qué falla y lo arreglo contigo delante.