El vibe coding — describir lo que querés en lenguaje natural y dejar que una IA lo construya — pasó de meme a ser la forma en que se publica buena parte de las apps web nuevas. Lovable, Cursor, Bolt, v0 y Replit convierten un prompt en un producto desplegado en una tarde.

El problema: los generadores de código con IA están optimizados para producir algo que funciona, no algo que es seguro. La app carga, la demo anda, el founder publica — y la clave de API expuesta, la base de datos con row-level security apagado y el endpoint de admin sin auth se publican junto con todo lo demás.

Por qué las apps vibe-coded son un riesgo de seguridad

  • El modelo copia patrones inseguros. Los LLM se entrenan con código público, incluidos millones de tutoriales que hardcodean claves y saltean la auth "por simplicidad".
  • Quien construye no lee el código. Muchos vibe coders no son técnicos. Si la IA escribe // TODO: agregar auth, nadie agrega la auth.
  • Los defaults son permisivos. Un proyecto nuevo de Supabase, un CORS abierto, un bucket público — el camino fácil es el inseguro.
  • Se publica al instante. No hay staging. La primera versión es la de producción, expuesta a internet.

Las 7 vulnerabilidades más comunes en vibe coding

#VulnerabilidadQué falla
1Secretos expuestosClaves de API y tokens hardcodeados en el cliente o en .env commiteados
2Auth ausente o rotaEndpoints que devuelven datos sin verificar quién pregunta
3Row Level Security apagadoRLS de Supabase desactivado: cualquier usuario consulta cualquier fila
4Secretos en el clienteClaves service-role y lógica de admin enviadas al navegador
5Sin rate limitingLogin, signup y pagos aceptan requests ilimitados
6Input sin validarInput del usuario que va directo a la query: inyección SQL, XSS
7Sin headers / CORS abiertoSin CSP/HSTS, Access-Control-Allow-Origin: * en APIs autenticadas

Checklist de seguridad para vibe coding

  • Secretos — ninguna clave en el cliente; nada de .env en git; rotá cualquier clave expuesta.
  • Auth — cada endpoint de datos verifica la sesión; sin rutas de admin accesibles por usuarios normales.
  • Base de datos — RLS activado en todas las tablas; políticas que limitan filas al dueño.
  • Input — todo validado en el servidor; queries parametrizadas.
  • Rate limiting — login, signup, reset y pagos limitados.
  • Headers — HTTPS, CSP, HSTS; CORS restringido a tus propios orígenes.

Cómo escanear tu app vibe-coded

Nurbak escanea la app desplegada y detecta justo estos problemas — secretos expuestos, endpoints sin auth, tablas con RLS apagado, headers faltantes — y te da un informe priorizado. Pegás tu URL y tenés el resultado en segundos.

Artículos relacionados