Tutorial

Proteger una app hecha con IA: lo mínimo indispensable

Cinco protecciones antes de publicar tu app hecha con IA: secretos fuera del código, validación, rate limiting, rutas privadas y auditoría con la propia IA.

IntermedioSeguridad4 min de lectura

Armaste una app con IA, funciona en tu compu y querés subirla a internet. Antes de hacerlo, hay una lista corta de protecciones que no son opcionales: la IA escribe código que funciona, no código que aguanta usuarios malintencionados. En este tutorial cerramos los cinco agujeros más comunes, sin necesidad de ser dev.

Antes de empezar

Necesitás:

  • Una app que ya corre en tu máquina (Node, Python o similar), hecha con Claude, ChatGPT, Cursor o la herramienta que uses.
  • Saber abrir la terminal y correr un comando.
  • El asistente de IA con el que construiste la app, abierto: va a ser tu auditor.
  • Una advertencia honesta: si tu app guarda datos de usuarios o mueve plata, esto es el piso, no el techo.

Paso 1 — Sacá los secretos del código

Un secreto es cualquier dato que da acceso a algo: API keys, contraseñas de base de datos, tokens. Si están escritos dentro del código, cualquiera que vea el código los tiene.

Buscá en tu proyecto textos como sk-, key, password o token. Todo lo que aparezca va a un archivo .env (un archivo de texto plano donde viven las variables privadas):

OPENAI_API_KEY=tu-clave-aca
DB_PASSWORD=tu-password-aca

Y en el código se leen así (ejemplo en Node):

const apiKey = process.env.OPENAI_API_KEY;

Después asegurate de que .env esté listado en tu .gitignore, para que nunca viaje a GitHub. Lo importante es que los secretos salgan del código hoy.

Paso 2 — No confíes en nada de lo que entra

Todo formulario, campo de búsqueda o parámetro de URL es una puerta. Si tu app mete lo que escribe el usuario directo en una base de datos o en un comando, alguien puede escribir algo malicioso y romperte todo (eso se llama inyección).

No hace falta dominar la teoría: pedile a tu IA esto, literal:

Revisá todos los lugares donde mi app recibe datos del usuario
(formularios, URLs, APIs) y agregá validación en el servidor:
tipo de dato, largo máximo y sanitización antes de tocar la base.

Y verificalo a mano: mandá textos larguísimos, símbolos raros y campos vacíos. La app tiene que responder con un error controlado, no caerse.

Paso 3 — Poné un límite de uso (rate limiting)

Si tu app llama a una API paga (como un modelo de IA), un solo visitante con un script puede hacerte mil pedidos por minuto y vaciarte el crédito. El rate limiting limita cuántos pedidos acepta tu servidor por usuario en cierto tiempo.

En Node con Express se resuelve con un paquete:

import rateLimit from "express-rate-limit";

app.use(rateLimit({
  windowMs: 15 * 60 * 1000, // ventana de 15 minutos
  max: 100                  // máximo 100 pedidos por IP
}));

Si usás otro stack, pedile a tu IA "agregá rate limiting a todos los endpoints" y listo. Complementalo con un límite de gasto en el panel del proveedor de la API: doble red de seguridad.

Paso 4 — Protegé lo que no es público

Preguntate: ¿qué rutas de mi app puede tocar cualquiera? Paneles de administración, endpoints que borran datos, rutas de configuración: todo eso necesita autenticación (que el servidor verifique quién sos antes de dejarte pasar).

El error clásico de las apps hechas con IA: el botón de admin está escondido en la interfaz, pero la ruta /admin responde igual si escribís la URL a mano. Esconder no es proteger; los bots escanean rutas comunes todo el día. Probalo: abrí una ventana de incógnito y entrá a las URLs sensibles de tu app. Si abren sin pedirte nada, tenés un problema.

Paso 5 — Hacé que la IA ataque su propio código

Antes de publicar, abrí una conversación nueva (sin el contexto de "todo está bien") y corré esta auditoría:

Actuá como atacante. Revisá este proyecto y decime las 5 formas
más fáciles de: robar secretos, gastar mi crédito de API,
acceder a datos de otros usuarios o tirar el servidor.
Para cada una, dame el arreglo concreto.

Vas a encontrar cosas. Siempre se encuentra algo. Arreglá lo que salga y repetí la auditoría hasta que lo que aparezca sea menor.

Errores comunes

  • Confiar en que "la IA ya lo hizo seguro". No lo hizo: genera lo que le pediste, y vos no le pediste seguridad. Hay que pedirla explícitamente.
  • Validar solo en el frontend. Lo que valida el navegador se salta con herramientas básicas; cualquiera puede hablarle directo a tu API. La validación que cuenta vive en el servidor.
  • Confiar en que "nadie va a encontrar mi app". Los ataques son automáticos, no personales: los bots prueban todo lo que tenga una URL, en horas. Aplicá los pasos aunque tengas cero usuarios.
  • Arreglar una vez y no volver a mirar. Cada feature nueva que le pedís a la IA puede abrir un agujero nuevo. Repetí el Paso 5 antes de cada publicación.

Siguiente paso

Con esto tu app deja de ser un blanco fácil. Lo que sigue: profundizar en el manejo de secretos (dónde guardarlos, cómo rotarlos), configurar HTTPS en tu dominio —gratis en casi cualquier hosting— y sumar autenticación con un servicio ya hecho en vez de programarla vos. Y si tu app mueve plata en serio, pagale a alguien que sepa para que la revise: sale más barato que el incidente.

¿Lo querés funcionando en tu negocio?

Mirá cómo trabajamos, o entrá gratis a la comunidad y preguntá lo que te trabó.

Seguí aprendiendo

En esta guía
  1. Antes de empezar
  2. Paso 1 — Sacá los secretos del código
  3. Paso 2 — No confíes en nada de lo que entra
  4. Paso 3 — Poné un límite de uso (rate limiting)
  5. Paso 4 — Protegé lo que no es público
  6. Paso 5 — Hacé que la IA ataque su propio código
  7. Errores comunes
  8. Siguiente paso