Saltar al contenido

Fundamentos de seguridad

Seguridad en Base44: qué marca un escaneo y qué te toca arreglar a ti

Seguridad en Base44 en 5.438 apps escaneadas: tres hallazgos en casi todas son de la plataforma, el source map es la insignia de Base44 y lo tuyo es poco.

Vlad Tkachenko12 min de lectura
Una app de Base44 con la insignia de la plataforma en una esquina, leída desde fuera en un informe de tres líneas tenues y una en acento.

En resumen

  • La seguridad en Base44 la decide sobre todo la plataforma. Un escaneo de una app de Base44 saca los mismos tres hallazgos en casi todas: cabeceras que faltan, una cabecera CORS comodín y un source map publicado.
  • El 16 de septiembre de 2026 volvimos a leer qué contienen esos source maps. Todos los que respondían pertenecían al script de la insignia de Base44. El código del dueño salió sin map en todas las apps que abrimos.
  • Lo tuyo es corto: cualquier clave pegada en la app (encontrada en el 2 % de las apps de Base44), las reglas de permisos de tus tablas y todo lo que hayas conectado tú. Las dos notas D entre 5.438 apps salieron de esa lista.

Escaneaste tu app de Base44 y el informe volvió con una B y tres líneas ámbar debajo: faltan cabeceras de seguridad, una API abierta a cualquier web, y tu código fuente original publicado. O alguien técnico miró por ti y dijo las mismas tres cosas con una voz más preocupada. Para una app cuyo código nunca has leído, la última es la que más pesa.

Aquí está la parte que guía tras guía sobre la seguridad en Base44 se equivoca: casi todas las líneas de ese informe hablan de Base44. Tres de los cuatro hallazgos que aparecen en casi todas las apps los fija la plataforma, para todas las apps que aloja. Y uno de los tres es una frase que nuestro propio escaneo formula mal. Este artículo existe porque volvimos a leer lo que había encontrado.

Piensa en tu app como un piso en un edificio que es de Base44. Un escaneo lee el edificio desde la calle. La cerradura del portal, el rótulo de encima, la regla sobre quién puede mirar por las ventanas: eso lo decidió el casero, y todos los pisos lo comparten. Lo que metiste tú es una lista más corta, y el resto de este artículo recorre el informe línea a línea para decir qué es de quién.

Qué encuentra un escaneo de seguridad en Base44 en casi todas las apps

Tres hallazgos en casi todas, un cuarto en cerca de la mitad, y los cuatro decididos por Base44.

En agosto de 2026 pasamos las mismas nueve comprobaciones a 30.998 apps vibe-coded en producción, 5.438 de ellas publicadas en Base44. A las 5.438 les faltaban cabeceras de seguridad. 5.417 respondieron a una petición desde una web inventada con una cabecera CORS comodín. 3.229 de ellas, el 59 %, servían un source map. 2.705 tenían una dirección, nombrada en el propio código de la app, que respondía a una petición sin sesión y devolvía datos.

BuilderAppsSource map publicadoHallazgo CORSUna clave en el bundleNota D o F
Base445.4383.229 (59 %)5.418 (99 %)103 (2 %)2
Lovable18.554225 (1 %)8 (menos del 1 %)822 (4 %)407
Replit3.042168 (6 %)1.129 (37 %)219 (7 %)9
Bolt1.12313 (1 %)5 (menos del 1 %)75 (7 %)15
v01.7900000

Cada porcentaje es sobre las apps en las que esa comprobación obtuvo respuesta, y por eso las bases difieren un poco del número de apps. Una comprobación que no pudo llegar a una app deja esa app fuera. Nunca cuenta como limpia.

Lee la fila de Base44 contra la de Lovable. En Lovable, los dos primeros hallazgos casi nunca aparecen, porque el alojamiento de Lovable fija ambos al revés. En Base44 aparecen casi siempre. Una columna tan uniforme en miles de apps cuyos dueños nunca hablaron entre sí es el aspecto que tiene un ajuste de plataforma visto desde fuera. Nadie lo eligió en su propia app.

Las dos últimas columnas se deciden dentro de cada app, y cuentan la otra mitad. Una clave en el código comprimido apareció en el 2 % de las apps de Base44 frente al 4 % de las de Lovable, y 2 apps de Base44 entre 5.438 sacaron una D, frente a 407 apps de Lovable entre 18.554. Esas dos apps de Base44 están en la última sección.

El hallazgo de source map en una app de Base44 es la insignia

Todos los source maps que respondían en las apps de Base44 que reabrimos pertenecían al script de la insignia de Base44. Ninguno contenía el código del dueño.

Un source map es un archivo que la herramienta de build escribe junto al JavaScript comprimido que sirve tu web. Contiene los archivos originales, sus nombres y cada comentario, para que un error pueda señalar la línea que escribiste en lugar del carácter 48.000 de una sola línea enorme. Cuando el map está publicado, cualquiera que pulse F12 lee el proyecto tal como se veía en el editor, y nuestro artículo anterior cuenta lo que eso cuesta en una app cuyo map es el tuyo.

En Base44 el map es de otro. El 16 de septiembre de 2026 volvimos a 30 apps que nuestro escaneo de agosto había marcado y leímos qué contenía cada map. En 27 de ellas el único map que respondía era /static/js/badge.js.map, el map del pequeño script que dibuja la insignia de Base44 en la página, y lo que revela es el código de Base44 para esa insignia. En las otras 3 no respondió ningún map. En ninguna de las 30 un map cubría los archivos del dueño. Esos archivos salieron comprimidos y sin map en todas las apps que abrimos, el primer archivo que carga la página y cada pieza que carga después.

En una app de Base44 el único map que responde pertenece al script de la insignia, y contiene el código de Base44. En una app de Lovable el map son los propios archivos del dueño.

Así que el 59 % cuenta otra cosa distinta de código publicado. De las 30 apps marcadas, 27 de las 28 que respondían siguen llevando el script de la insignia en su página, y de 30 apps que nunca se marcaron, 29 no lo llevan. La cifra que se lee como «tres de cada cinco apps de Base44 publican su código» está más cerca de «tres de cada cinco apps de Base44 muestran la insignia».

Eso deja una línea de nuestro propio informe de la que responder. Dice «Tu código fuente original está publicado», y en una app de Base44 es cierta para un archivo y falsa para tu app. La comprobación hizo lo que se construyó para hacer: seguir la dirección al final de un script y contar un map que responde. Aquí el script es del casero. En Lovable, Replit y Bolt la misma línea significa lo que dice. De 11 apps marcadas de esos builders que reabrimos, 9 servían un map de las propias páginas y componentes del dueño, y en las otras 2 ya no respondía ningún map.

Lo que significa para ti es que nada tuyo está en ese map. La comprobación que vale la pena es la otra: si algo que pegaste en la app está en el archivo comprimido que cada visitante ya recibe. Eso viene más abajo.

Nuestro escaneo gratuito lee tu app de Base44 en producción desde fuera, las nueve comprobaciones, en unos 20 segundos y sin cuenta, y escribe «No se pudo comprobar» en todo lo que no pudo responder, en lugar de una marca de visto: escanea tu app.

El comodín CORS: lo fija Base44, y detrás no responde nada privado

No puedes cambiarlo, y en las apps de Base44 que miramos no hay datos privados detrás.

El hallazgo es una línea en las respuestas de tu servidor, Access-Control-Allow-Origin: *, que le dice al navegador de un visitante que una página de cualquier otra web puede leer esa respuesta concreta. La documentación de Base44 dice de dónde sale (leída el 16 de septiembre de 2026): «Per-app CORS configuration is not currently available. Base44 manages CORS at the platform level.» Todas las apps de la plataforma la envían, y así es como 5.417 apps de 5.419 acabaron compartiendo un mismo hallazgo.

Que un comodín importe depende de qué responde detrás, y el artículo largo explica por qué. La versión corta: la cabecera llega después de que la respuesta ya se envió, y solo la lee un navegador, así que estrecharla impediría que las páginas de otras webs leyeran tu app, y a nadie más. Lo que hay detrás en una app de Base44 es la propia app, la página, el código comprimido, la insignia, y todo eso lo descarga cada visitante de todos modos.

El cuarto hallazgo es donde un comodín importaría. En 2.705 apps de Base44, cerca de la mitad, una dirección nombrada en el código de la app respondía a una petición sin sesión y devolvía datos. Reabrimos 12 de ellas el 16 de septiembre. En seis ya no respondía nada. En las otras seis la dirección que respondía era la misma cada vez, /api/consent/config, y lo que devuelve son los ajustes de consentimiento de cookies de la app: si hay un aviso de consentimiento activo, qué reglas regionales aplican, cuántos meses se recuerda la respuesta. Es configuración. Ahí no hay filas de nadie.

Tus datos no viajan por ese camino en Base44. Tu app le pregunta al backend de Base44, el backend aplica las reglas de permisos que pusiste en cada tabla, y la respuesta vuelve por la misma puerta. Un escaneo desde fuera no puede ver esas reglas en absoluto, y por eso la guía de Base44 dedica su tiempo a lo que un desconocido puede alcanzar, y te deja tus reglas a ti.

Qué es tuyo en una app de Base44

Una lista corta, y las dos notas D del barrido salieron de ella.

Una clave que pegaste. 103 de las 5.438 apps de Base44, el 2 %, servían algo con forma de clave en el código que descarga cada visitante. 95 de ellas eran claves de API de Google, que normalmente necesitan una restricción en Google Cloud, y no rotación. Una era una clave secreta de Stripe, y esa app sacó una D. Base44 guarda sus propias credenciales en su servidor, así que una clave en tu bundle es una que tú o el builder añadisteis para una función: un mapa, una etiqueta de analítica, un formulario de pago. Saber de qué tipo es se lee en un minuto, y una secreta se rota donde se emitió antes de sacarla del código.

Las reglas de permisos de tus tablas. Base44 las llama data access rules, y deciden quién puede leer y editar cada tipo de registro. Nadie desde fuera puede probarlas, nosotros incluidos, y ese es el único sitio donde un escaneo externo tiene que dejar un hueco. El propio escaneo de seguridad de Base44 sí las lee, y su documentación dice que está disponible en todos los planes, el gratuito incluido.

Todo lo que conectaste tú. La otra D del barrido era una app de Base44 con un proyecto de Supabase propio, y dentro una tabla nombrada como datos personales que respondía a una petición sin sesión. Conecta tu propia base de datos y las reglas por fila habituales aplican por completo, porque ese proyecto responde a internet directamente.

Seis líneas que un escaneo puede imprimir en una app de Base44. Las cuatro primeras las fija la plataforma para todas las apps que aloja. Las dos últimas son las que un dueño puede cambiar, y de ellas salieron las dos notas D del barrido.

Qué puedes cambiar desde dentro de Base44

Dos cabeceras, las reglas de tus tablas y tus claves. El resto se fija para todas las apps de la plataforma.

La documentación de Base44 enumera lo que puedes activar (leída el 16 de septiembre de 2026). En el panel de tu app, en Security y luego el icono de ajustes, puedes activar dos cabeceras de seguridad. Prevent Embedding pone X-Frame-Options, que impide que tu app se muestre dentro de la página de otro sitio. Restrict Browser Features pone Permissions-Policy, que limita qué puede pedirle tu app al navegador, cámara y ubicación incluidas. Si hay gente que inicia sesión en tu app y puede hacer algo con consecuencias en un clic, activa la primera. La misma página dice que Content-Security-Policy y Strict-Transport-Security «are not configurable at the individual app level». Eso es la mayor parte del hallazgo de cabeceras, y está fuera de tus manos.

El propio escaneo de Base44 cubre el interior: problemas de permisos de datos, secretos expuestos, funciones de backend sin comprobación de sesión, dependencias y, a partir del plan Builder, vulnerabilidades en el código. Su documentación no menciona los source maps ni la cabecera CORS, lo cual es justo, porque ambos son de la plataforma. Un escaneo externo cubre lo que se le entrega al navegador de un visitante, y en una app de Base44 ahí es donde la lista es más corta.

Qué dice el informeQuién lo fijaQué hacer
Faltan cabeceras de seguridadBase44, con dos interruptores para tiActiva Prevent Embedding si hay gente que inicia sesión. Deja el resto.
API abierta a cualquier webBase44Nada. Mira mejor qué responde detrás.
Código fuente original publicadoEl script de la insignia de Base44Nada. El map contiene el código de Base44 para la insignia.
Una dirección responde sin sesiónBase44, en /api/consent/configLee qué devuelve. Los ajustes de consentimiento son públicos a propósito.
Una clave en el bundleRota una clave secreta en su origen. Restringe una clave de Google.
Una tabla legibleTú, si conectaste tu propia base de datosRow Level Security en cada tabla que contenga personas.

Qué hacer ahora mismo

Qué hacer

  • Lee las tres líneas de plataforma de tu informe como de Base44, y luego lee el resto.
  • Pulsa F12 en tu app en producción y abre la pestaña Sources. Si no hay una carpeta con tus propios archivos, no hay map de tu código, diga lo que diga el informe.
  • Encuentra cada clave en la app y lee su prefijo. Una secreta se rota donde se emitió y después se quita del código, en ese orden.
  • Activa Prevent Embedding en Security si tus usuarios inician sesión.
  • Abre Data, elige una tabla, luego Permissions, y lee la regla de cada tabla que contenga personas.
  • Si conectaste tu propio proyecto de Supabase, activa Row Level Security en cada tabla y comprueba que de verdad filtra.

Publicar en Base44 es un clic en la barra superior, y nada entre ese clic e internet vuelve a leer la app buscando una clave que se pegó para que una función funcionara. Un escaneo que hiciste el mes pasado describe la app del mes pasado.

Reeve Monitor está hecho para eso. Vuelve a ejecutar las nueve comprobaciones cada hora en hasta tres apps, vigila la disponibilidad cada 60 segundos, te avisa cuando un resultado cambia en lugar de esperar a que mires, y envía un informe mensual. Cuesta $12 al mes a precio de lista, con siete días gratis antes de cobrarte; la página de precios a veces está por debajo de la cifra de aquí y nunca por encima. Monitor vigila y nada más, que para una app de Base44 es la mitad que encaja: Care, nuestro plan de copias de seguridad, solo respalda proyectos de Supabase, y una app de Base44 guarda sus datos dentro de Base44 salvo que hayas conectado un proyecto propio.

La guía en lenguaje claro para esta plataforma es ¿Es segura tu app de Base44?, y la checklist de seguridad de 10 minutos cubre lo que merece la pena confirmar en cualquier app recién lanzada, la haya construido lo que la haya construido.

Preguntas frecuentes

Mi escaneo dice que mi app de Base44 publica su código fuente original. ¿Es cierto?

En las apps de Base44 que volvimos a comprobar en septiembre de 2026, no. El único source map que respondía pertenecía al script de la insignia de Base44, y contiene el código de Base44 para esa insignia. Tus propios archivos salieron comprimidos y sin map en todas las apps que abrimos. La misma línea en una app de otro builder suele significar lo que dice, y ahí sí merece la pena leerla.

¿Puedo desactivar el comodín CORS en una app de Base44?

No. La documentación de Base44 dice que la configuración de CORS por app no está disponible y que la plataforma la gestiona. Lo que tú decides es qué devuelven las direcciones de tu app a una petición sin sesión, y de todos modos ahí es donde la cabecera importaría. En las apps de Base44 que reabrimos, la única dirección que respondía sin sesión devolvía ajustes de consentimiento de cookies.

¿Base44 es menos seguro que Lovable?

Un escaneo no puede ordenar builders, y estos dos tienen formas distintas. Una app de Base44 saca más hallazgos, y casi todos son ajustes de la plataforma que no exponen nada tuyo. Una app de Lovable habla directamente con su base de datos de Supabase, así que el ajuste que más datos filtra, una tabla sin reglas por fila, está al alcance de un creador en Lovable y no de uno en Base44. Dos notas D entre 5.438 apps de Base44 frente a 407 entre 18.554 apps de Lovable es esa diferencia en cifras. No dice nada de tu app hasta que la escaneas.

¿Qué puedo cambiar desde dentro de Base44?

Dos cabeceras de seguridad (Prevent Embedding y Restrict Browser Features, en Security dentro del panel de tu app), las reglas de permisos de cada tabla, qué funciones de backend exigen un usuario con sesión y qué claves pegas en la app. CORS, Content-Security-Policy y Strict-Transport-Security los fija la plataforma para todas las apps, y la documentación de Base44 lo dice.

¿Un source map público expone mis claves de API?

Un map expone código, y una clave que está en el código ya estaba en el archivo comprimido que descarga cada visitante. En una app de Base44 el único map que encontramos pertenece a la insignia, así que la pregunta real es si hay alguna clave en tu bundle. Nuestro escaneo lee el bundle para eso por separado. En apps de Base44, las claves que encuentra son casi siempre claves de API de Google, que normalmente necesitan una restricción en Google Cloud, y no rotación.

Escrito por

Vlad Tkachenko

Fundador de Reeve

Me paso el día mirando apps creadas con Lovable, Bolt, v0, Cursor y Replit, y la corta lista de errores que aparecen en ellas una y otra vez.

Más sobre el autor

Sigue leyendo

Todos los artículos

¿No sabes cómo está tu propia app?

Haz un escaneo gratuito y obtén una nota clara de la A a la F en unos 20 segundos. Sin cuenta y sin tarjeta.

Analizar mi app gratis

Comprobación externa automatizada, no una auditoría completa. La ausencia de hallazgos no es garantía de seguridad.