Web App 4 min de lectura

Por qué los indie hackers, solopreneurs y vibe coders necesitan un pentest

Lanzaste en semanas con IA escribiendo el código, Stripe en el checkout y auth lista. El problema: los fallos que hunden a un SaaS pequeño son justo los que la IA reproduce. Qué probar antes del primer cliente que paga.

También en PTENPT-BR
Por qué los indie hackers, solopreneurs y vibe coders necesitan un pentest

La velocidad no es el problema. Lo que no ves, sí.

Sacaste un producto de la idea a producción en pocas semanas: IA escribiendo el código, Supabase o Firebase en el backend, Stripe en el checkout, desplegado en Vercel. Funciona, tienes tus primeros usuarios, quizá los primeros que pagan. Enhorabuena, y es justo aquí donde aparece el riesgo.

El problema no es la velocidad. Es que los fallos que hunden a un SaaS pequeño son los más banales —autenticación, autorización, lógica de pago— y son precisamente los que un modelo de IA reproduce con confianza, porque aprendió de millones de ejemplos igual de inseguros. "Compila y funciona" no es "es seguro".

Por qué el vibe coding hereda vulnerabilidades clásicas

Cuando le pides a la IA un endpoint que "devuelve los datos del usuario", te entrega algo que funciona en el happy path. Lo que casi nunca añade a menos que se lo pidas explícitamente:

  • comprobar que el usuario autenticado es dueño del recurso que pide;
  • validar que el precio vino del servidor, no del frontend;
  • limitar los intentos de login y de reseteo de contraseña;
  • comprobar que el webhook de Stripe es auténtico antes de dar acceso.

Nada de eso aparece en la demo. Todo aparece cuando alguien —curioso o malintencionado— cambia un número en la URL.

Los cinco fallos que más hunden un producto en solitario

1. IDOR: el id en la URL

GET /api/projects/123 devuelve tu proyecto. /api/projects/122 devuelve el del vecino, porque el backend confía en el ID sin comprobar la propiedad. Es la fuga de datos más común en un SaaS pequeño, y enumerable en minutos.

2. Precio definido en el cliente

El checkout envía { "plan": "pro", "price": 4900 }. Si el backend confía en el price recibido en vez de buscarlo en tu catálogo, el cliente paga lo que quiera, incluido 1 €. El pago es lógica de servidor, siempre.

3. Webhook de Stripe sin verificación de firma

El endpoint que activa el plan de pago se llama con un POST. Si no verificas la firma del webhook, cualquiera envía ese POST y se convierte en suscriptor premium gratis.

4. Login y reseteo de contraseña sin límites

Sin rate limit, el login se convierte en objetivo de fuerza bruta y el "olvidé mi contraseña" en una herramienta para enumerar correos registrados. Barato de explotar, caro de descubrir después.

5. Secretos en el sitio equivocado

Tu clave de OpenAI, el service_role de Supabase, el token de Stripe: en el bundle del frontend, en un .env commiteado, o expuestos por una ruta de debug. Un service_role filtrado es acceso total a la base de datos, saltándose cualquier regla de RLS.

¿Y si tu producto usa IA?

Si añadiste un chatbot, un agente o un "pregúntale a la IA", heredaste una superficie nueva: prompt injection, fuga del system prompt, abuso de las herramientas que el modelo puede llamar. Un usuario puede convencer a tu asistente de hacer lo que no autorizaste. Es un alcance propio, y conviene probarlo antes de conectar el modelo a datos o acciones reales.

No necesitas un pentest enterprise

El instinto del indie hacker es aplazar la seguridad "hasta tener escala". Pero el coste de un incidente —fuga de datos de clientes, fraude en el pago, una cuenta comprometida— llega antes que la escala, y para un producto en solitario puede ser fatal para la reputación. A la vez, no necesitas el paquete de auditoría de banco.

Lo que tiene sentido en esta etapa es una prueba enfocada y ligera: autenticación, autorización, lógica de pago, exposición de secretos y, si la hay, la capa de IA. Unos días, un informe directo con qué corregir por orden de riesgo, y un retest tras parchear. Suficiente para no caer por lo básico.

Cómo lo prueba Pentest Machine

Trabajamos desde el producto en solitario hasta el enterprise, ajustando el alcance a tu etapa: un pentest enfocado en los fallos que de verdad afectan a un SaaS pequeño, con PoC reproducible, prioridad por riesgo y retest incluido, más cobertura de IA/LLM cuando tu producto tiene asistente. Si lanzaste rápido y ahora tienes usuarios reales, es el momento de descubrir lo que la IA no te avisó antes de que lo descubra un extraño.