Lovable y Supabase: verifica en diez minutos si tu base de datos está abierta a todos

Escrito por Léo Guillaume6 min de lectura
lovable supabaseseguridad en aplicaciones lovableseguridad por nivel de filaaplicación generada por IAbase de datos expuestarecuperación de aplicación IA
Lovable y Supabase: verifica en diez minutos si tu base de datos está abierta a todos

"¿Mi aplicación Lovable funciona, pero ¿mis datos están protegidos?" Es la pregunta que hago primero cuando alguien me muestra una aplicación generada por IA, y la respuesta suele ser: nadie lo ha verificado. Lovable, Bolt y la mayoría de las herramientas similares almacenan sus datos en Supabase, una base de datos muy bien diseñada, pero con una particularidad: por defecto, una tabla puede ser legible por cualquiera que conozca la dirección de su aplicación.

No es un rumor. En mayo de 2025, se publicó una vulnerabilidad bajo el nombre CVE-2025-48757: sitios generados por Lovable permitían leer y modificar sus tablas sin necesidad de cuenta, debido a reglas de acceso insuficientes. Lovable respondió que la protección de datos sigue siendo responsabilidad de cada cliente. En otras palabras, es usted quien debe verificar.

Aquí le explico cómo hacerlo en diez minutos, sin ser desarrollador, y qué hacer si el resultado le preocupa.

Lo que hace la Row Level Security, en términos sencillos

Supabase expone su base de datos directamente a su aplicación a través de una clave llamada «pública», que cualquiera puede ver en el navegador. Es normal, así funciona la herramienta. Lo que impide que un desconocido acceda a los registros de sus clientes no es esa clave, sino las reglas de acceso aplicadas a cada tabla, que Supabase denomina Row Level Security (RLS, por sus siglas en inglés).

Por ejemplo, una regla puede establecer: «un usuario conectado solo ve las filas donde la columna propietario muestra su identificador». Sin reglas, la documentación de Supabase es clara: una tabla expuesta sin RLS es legible y modificable por cualquier rol que tenga acceso, incluyendo el rol público utilizado por su aplicación.

El problema de las aplicaciones generadas por IA es que estas reglas suelen olvidarse o configurarse demasiado amplias para que «funcionen» durante la demostración. Todo parece funcionar, las pantallas son atractivas, pero la puerta está abierta.

Verificar en diez minutos

Necesitará acceso a su proyecto en Supabase (Lovable lo dirige desde la configuración del proyecto, o usted lo creó por su cuenta).

1. Abra el panel de control de Supabase, luego la sección que lista sus tablas. Cada tabla muestra si la RLS está activada o no. Una tabla marcada como no protegida, que contenga nombres, correos electrónicos o pedidos, es la primera señal de alerta.
2. Revise las reglas de cada tabla protegida. Activar la RLS no es suficiente: se necesitan reglas. Una regla que permita a todos leer todo, añadida «para que funcione», equivale a no tener ninguna regla.
3. Haga la prueba del desconocido. Abra su aplicación en una ventana de navegación privada, sin iniciar sesión. Si aparecen datos de otras personas o si se muestra una pantalla restringida sin necesidad, la protección no está en su lugar.
4. Busque claves que no deberían estar ahí. En los ajustes de Supabase, existe una clave llamada de servicio que elude todas las reglas. Nunca debe aparecer en el código de la aplicación. Si ves esta clave en un archivo de configuración del lado del navegador, considérala comprometida.

Diez minutos bastan para saber si tienes un problema. Corregirlo requiere un poco más.

Lo que corrijo cuando la base está abierta

Ese mismo día, cierro la puerta: RLS activada en cada tabla, y reglas que solo permiten el paso al propietario de la fila o al rol que lo necesite. Luego, verifico con dos cuentas diferentes que una nunca ve los datos de la otra, y escribo esa prueba para que se ejecute en cada actualización.

Si una clave de servicio aparecía en el código, la renuevo y muevo todo lo que la usaba al lado del servidor. Si datos pudieron ser leídos por desconocidos, se lo escribo negro sobre blanco, con lo que el RGPD exige en ese caso: informar a las personas afectadas y, cuando el riesgo es real, declarar el incidente a la CNIL en 72 horas.

Es el primer paso de la recuperación de una aplicación hecha con IA: la puesta en seguridad, que suele tomar entre tres y siete días, antes de tocar cualquier error funcional.

Un ejemplo concreto

Imaginemos a Karim, que gestiona una pequeña sala de escalada y construyó con Lovable un espacio de socios: inscripción, reserva de turnos, historial de visitas. Todo funciona. Al hacer la prueba del desconocido, descubre que la lista de socios, con sus correos electrónicos y fechas de nacimiento, se carga incluso sin estar conectado.

La corrección se resuelve en un día: reglas de acceso por socio, un rol para recepción que ve a todos, una prueba automática que verifica ambos casos. La aplicación no cambia ni un píxel. Pero el día que un socio pregunte «¿quién puede ver mis datos?», Karim tiene una respuesta.

¿Y Bolt, v0, Cursor?

El mecanismo es el mismo: estas herramientas también se basan en Supabase o en una base comparable, y las reglas de acceso suelen estar ausentes allí también. La verificación anterior aplica para todos. Solo cambia la forma de llegar al panel de control de la base.

Preguntas frecuentes

¿La clave pública de Supabase visible en mi aplicación es un problema?
No, está hecha para eso. Lo importante es que las tablas detrás tengan reglas de acceso. La clave que nunca debes exponer es la clave de servicio.

¿Lovable puede corregir esto solo si se lo pido?
Puede añadir reglas, pero sin entender tu negocio, a menudo las escribe demasiado amplias, y nada verifica que funcionen después de la siguiente corrección. Es precisamente lo que releo y pruebo.

¿Cuánto cuesta asegurar una aplicación Lovable?
El audit es gratuito. La puesta en seguridad completa (reglas de acceso, claves, copias de seguridad, cuentas y permisos) oscila entre 900 y 1.500 € en paquete, en tres a siete días. Los precios completos están en la página de recuperación de la aplicación de IA.

¿Debo detener mi aplicación para verificar?
No. Verificar no afecta nada. Si la base está abierta, el cierre tarda unas horas y se realiza sin interrumpir el servicio.

¿Quieren que revise la suya?

Si no desea realizar estas verificaciones por sí mismo, envíeme la dirección de su aplicación. Revisaré la base de datos, las reglas y las claves, y recibirá una primera opinión por escrito en menos de 48 horas, de forma gratuita. También puede empezar con la prueba de 8 preguntas, que le indica en dos minutos en qué punto está.

👉 Solicitar mi auditoría gratuita

¿Un software pensado para tu actividad? Planificación, stock, presupuestos, control de horas: desarrollo software de gestión a medida para pymes, a precio cerrado.

Software de gestión a medida en Rennes: herramientas, precios y método 
Retrato de Léo Guillaume, fundador de Dibodev

Escrito por

Léo Guillaume

Desarrollador independiente cerca de Rennes

Creo aplicaciones de gestión, sitios web y automatizaciones con IA para pymes y autónomos. Estos artículos comparten lo que veo sobre el terreno, con mis clientes.

Conocer mi trayectoria

¿Tienes un proyecto en mente?

Cuéntame tu necesidad en unas líneas: te respondo en 24 horas con primeras ideas y una estimación de presupuesto.