Saltar al contenido

Fundamentos de seguridad

¿Es seguro Bolt? Lo que vimos en 1.123 aplicaciones Bolt

¿Es seguro Bolt? Pasamos 1.123 aplicaciones Bolt en vivo por nueve comprobaciones. El hosting salió limpio. Los hallazgos eran claves y tablas abiertas dentro.

Vlad Tkachenko15 min de lectura
Una aplicación como escaparate con el logo de Bolt de letrero, una llave roja dentro, una base cerrada detrás y un visitante fuera.

En resumen

  • ¿Es seguro Bolt? En todo lo que decide Bolt, sí. En 1.123 aplicaciones Bolt en vivo encontramos 13 que publican sus source maps, una que dejaba a cualquier web llamar a su API y ni un solo certificado defectuoso.
  • 75 de esas aplicaciones llevaban algo con forma de clave en el código que descarga un visitante. Casi todas eran claves de Google, que suelen estar bien. Diez eran claves de OpenAI, y quien encuentre una puede gastarla.
  • De las 35 bases de datos de Bolt que pudimos consultar de verdad, 27 entregaron filas a una petición sin iniciar sesión. Los dos problemas son ajustes de tu propio proyecto.

Construiste algo en Bolt, pulsaste Publish, y ahora vive en una dirección que termina en bolt.host. Antes de mandar ese enlace a clientes de verdad escribiste "es seguro bolt" en un buscador, y lo que volvió fue una lista de cinco vulnerabilidades que, según dicen, están en casi todas las aplicaciones Bolt, con un escáner a la venta al final de la página.

Esto es lo que esas listas hacen mal: ponen todos los riesgos al mismo nivel, y en las aplicaciones Bolt en vivo la mayoría apenas aparece. Source maps, cabeceras cross-origin abiertas y rutas de API sin proteger figuran ahí al mismo nivel que las claves filtradas y las tablas abiertas. En nuestros datos las tres primeras aparecieron en 13, 1 y 4 aplicaciones de más de mil. Las otras dos son donde estaban los hallazgos.

Entre el 12 y el 14 de agosto de 2026 pasamos las mismas nueve comprobaciones externas que cualquiera puede lanzar gratis desde nuestra página de inicio sobre 30.998 aplicaciones en vivo, y 1.123 de ellas estaban publicadas en el hosting propio de Bolt. Esto es lo que volvió de ellas, y hasta aquí llega nuestra vista.

¿Es seguro Bolt?

En todo lo que decide Bolt, sí. Su hosting salió tan limpio como el de Lovable, y todo lo que bajó una nota estaba dentro de una aplicación construida por su dueño.

Piensa en una aplicación Bolt como en una tienda. Bolt levanta el edificio: la dirección, el certificado, el hosting. Tú llenas el escaparate, es decir, cada página, imagen y script que tu aplicación le entrega a un visitante, y cualquiera que pase por delante puede leer lo que hay dentro. Detrás de la tienda está el almacén, tu base de datos, con su propia puerta y su propia cerradura. "¿Es seguro Bolt?" son en realidad tres preguntas, una por cada uno.

  1. El edificio. ¿Publica Bolt tu aplicación como debe? Un certificado válido, un dominio que no caduque, nada olvidado en una dirección pública. Esto es trabajo de Bolt.
  2. El escaparate. Lo que descarga el navegador de un visitante. Una clave que se quede ahí la puede leer cualquiera que mire, llegara como llegara.
  3. El almacén. Si tu base de datos le responde a un desconocido que da la vuelta por detrás y pregunta. Eso depende de una cerradura que pones tú, tabla por tabla.

Nuestras comprobaciones leen las tres desde fuera. Ninguna lee el código que escribió el agente de Bolt como lo leerías tú en el editor, y este artículo no intenta adivinarlo.

Lo que encontramos en 1.123 aplicaciones Bolt

Nueve comprobaciones, desde fuera, sin iniciar sesión y sin acceso a la cuenta de nadie. Cuando una base de datos respondía, le preguntábamos cuántas filas entregaría y nos deteníamos ahí; no leímos ninguna. Ninguna aplicación se nombra aquí ni en nada de lo que publicamos. Cada proporción de abajo es sobre las aplicaciones en las que esa comprobación respondió, porque una comprobación que no pudo terminar es desconocida, no superada, y por eso se mueven los denominadores. El método y los datos están en el informe.

Qué comprobamosAplicaciones BoltQuién lo decide
Faltan cabeceras de seguridad del navegador1.121 de 1.123El hosting de Bolt
Algo con forma de clave en el código que descarga un visitante75 de 1.123 (7 %)Tu aplicación
Una tabla de la base de datos legible sin iniciar sesión27 de 35Tu aplicación
Código fuente original publicado (source maps)13 de 1.123 (1 %)Un ajuste de build
Un bucket de almacenamiento que lista sus archivos6 de 901Tu aplicación
Una ruta de API que entregó datos a un desconocido4 de 1.120Tu aplicación
Cualquier web autorizada a llamar a tu API1 de 1.120Tu aplicación
Un archivo privado como .env o .git/config en una URL pública0 de 1.109Tu aplicación
Certificado caducado o no fiable0 de 1.119Bolt
Dominio a punto de caducar0 de 1.123Bolt

Las notas: 1.051 A, 33 B, 24 C, 15 D y ninguna F.

Número de aplicaciones en una sola escala. La barra gris la decide el hosting de Bolt. Cada barra turquesa salió de algo dentro de la aplicación, y la fila de tablas legibles se mide sobre una base mucho menor, que una imagen más abajo desmonta.

Esa primera fila la decide quien sirve tus páginas, y en yourapp.bolt.host ese es Bolt, así que 1.121 aplicaciones recibieron la misma respuesta. Las cabeceras merece la pena tenerlas, y no son lo que convierte una nota en D. Quita esa fila y 1.008 de las 1.123 aplicaciones Bolt no tenían nada más. Las 115 restantes son el tema del resto de este artículo.

Lo que Bolt hace bien

Las comprobaciones que dependen de Bolt volvieron casi vacías, y en el único ajuste de build que medimos Bolt empata con Lovable.

Source maps. 13 de 1.123 aplicaciones Bolt publican los archivos originales detrás de la aplicación, comentarios incluidos. Es algo más de una de cada cien, más o menos la misma tasa que las 225 de 18.553 de Lovable, y un map revela más de lo que se suele pensar.

Cabeceras cross-origin. Una aplicación de 1.120 le decía a cualquier web del mundo que podía llamar a su API. Es el hallazgo que más fácilmente deja a otro sitio actuar como tu usuario, y en Bolt apareció una vez.

El edificio en sí. El certificado era válido en las 1.119 aplicaciones en las que pudimos leer uno, ningún dominio de 1.123 estaba a punto de caducar, y ninguna aplicación servía un archivo .env o un .git/config en una dirección cualquiera.

Nada de eso te pidió nada a ti, y en algunos otros builders sí.

De qué estaban hechas las 75 claves

Casi todas estaban bien, y las pocas que no lo estaban son lo más caro de este artículo.

75 de las 1.123 aplicaciones Bolt tenían algo con forma de clave en el código que descarga un visitante. Contadas como formas, son el 7 % de las aplicaciones Bolt "filtrando secretos". Contadas por lo que puede hacer cada clave, se reparten así, con cada aplicación contada una sola vez, bajo lo más grave que contiene:

Lo que encontramos en el bundleAplicacionesQué significa
Una clave de API de Google, y nada más38Suele ser correcto, una vez restringida a tu dominio
Un secreto que no pudimos atribuir26No pudimos decir a qué proveedor pertenece
Una clave de OpenAI10Cobra a tu cuenta, directamente
Una clave de Anthropic1Cobra a tu cuenta, directamente

Las 38 claves de Google son la razón por la que clasificamos cada clave en lugar de limitarnos a buscar un patrón. Una clave de Google Maps en el navegador está donde tiene que estar, y el arreglo es restringirla a tu propio dominio.

Las diez claves de OpenAI son el caso contrario. Una clave de OpenAI es un bearer token: quien la tiene puede gastarla, desde cualquier sitio, y OpenAI no ofrece ningún ajuste que ate una clave a tu web. Las diez aplicaciones sacaron una D, porque un solo hallazgo crítico pone techo a la nota, haga lo que haga bien la aplicación en lo demás. Qué hacer con una, en orden empieza por rotarla hoy mismo.

Este es el número que convierte esto en el hallazgo de Bolt. Las aplicaciones Bolt eran menos de 4 de cada 100 aplicaciones escaneadas, y llevaban 10 de las 33 claves de OpenAI que encontramos en total. Por aplicación, sale más o menos una aplicación Bolt de cada 110, frente a 18 de las 18.554 aplicaciones Lovable, más o menos una de cada mil. Diez aplicaciones son una muestra pequeña, y unas pocas más o menos moverían mucho esa proporción. Aun así Bolt seguiría por delante de todos los demás builders que medimos.

Bolt era una franja fina de las aplicaciones escaneadas y casi un tercio de las claves de OpenAI encontradas. Los números son pequeños, por eso se muestran los dos en lugar de convertirlos en una tasa.

¿Por qué las aplicaciones Bolt filtran claves de API?

Desde fuera no vemos cómo llegó ahí cada una de esas diez claves, y las propias instrucciones de Bolt dicen que ninguna debería estar ahí.

La documentación de Bolt describe el camino previsto. Pídele al agente que integre OpenAI y, en palabras de la documentación, "terminará el código y luego mostrará un mensaje pidiéndote que añadas tu secreto". Ese secreto va en el panel Secrets, donde solo una función de servidor puede leerlo. Una función de servidor se ejecuta del lado de Bolt, así que el navegador del visitante nunca recibe la clave. Construida así, la clave se queda en el almacén.

El atajo que sí podemos nombrar es la variable de entorno. La introducción de Bolt a las bases de datos dice que las variables de entorno mantienen privados estos valores, y dos de los tres nombres que cita, VITE_SUPABASE_URL y VITE_SUPABASE_ANON_KEY, empiezan por VITE_. Ese prefijo es de Vite, la herramienta de build, y la documentación de Vite dice lo contrario sobre él: una variable VITE_ se escribe en el código que descarga el navegador, y nunca debe contener una clave de API. Para esos dos nombres no pasa nada, porque la dirección de un proyecto y una clave publicable están hechas para ser públicas. Copia el mismo patrón para VITE_OPENAI_API_KEY y la clave queda en el escaparate.

Una clave pegada en el chat mientras arreglabas otra cosa también puede acabar escrita directamente en una página. En los dos casos el resultado es el mismo archivo. Cómo funciona el prefijo explica qué valores van detrás de él y cuáles nunca.

27 de 35: las bases de Bolt que pudimos consultar

De las bases de datos de Bolt que nos dieron una respuesta utilizable, 27 de 35 entregaron filas a una petición sin ningún inicio de sesión. Es un recuento, y la base es demasiado pequeña para imprimirlo como porcentaje.

Los denominadores importan aquí más que en cualquier otro punto del artículo. 266 de las 1.123 aplicaciones Bolt nombraban un proyecto de Supabase en el código que publican. Solo 35 de ellas respondieron lo bastante bien como para poder juzgarlas. Las otras 231 no se pudieron juzgar, lo que las deja como desconocidas, y no las contamos ni como limpias ni como expuestas.

Cuatro denominadores. El 27 se mide sobre el 35, y las 231 que no pudimos juzgar están dibujadas como desconocidas en lugar de dejarse fuera.

En 4 de las 27, la tabla que respondió tenía el tipo de nombre que llevan las tablas sobre personas, como users o profiles. Esas cuatro y las once aplicaciones con una clave de OpenAI o de Anthropic suman las 15 notas D. En las otras 23 era una tabla que no podíamos identificar desde fuera, quizá una lista de productos que siempre tuvo que ser pública, quizá cualquier otra cosa.

Por qué todo se decide en la base de datos

Porque la dirección del almacén está impresa en el escaparate, y tiene que estarlo.

Cuando una aplicación Bolt lee sus datos desde la página, la página necesita la dirección de la base de datos y una clave publicable, así que las dos viajan hasta cada visitante. Que esa clave sea pública es correcto; es por donde entra tu propia aplicación. Lo que recibe a cambio lo decide un ajuste por tabla llamado Row Level Security. Activado y con una policy escrita, la clave pública solo lee las filas que la policy permite. Desactivado, lee la tabla.

Supabase activa la Row Level Security por defecto en las tablas que creas a base de clics en su Table Editor. Las tablas creadas ejecutando SQL no la reciben, y ejecutar SQL es justo la forma en que un builder crea tablas por ti. Activarla, además, es solo el primer paso, porque la policy que escribe un asistente para quitarse de encima un error de permisos suele ser using (true), que deja pasar a todo el mundo mientras el panel muestra la tabla como protegida. La RLS está activada y tu tabla sigue siendo pública cuenta esa historia entera.

La comprobación de base de datos de Bolt busca exactamente esto: su documentación la describe como capaz de encontrar "una policy de Row Level Security (RLS) que falta o un permiso demasiado abierto". La guía en lenguaje sencillo para esta plataforma es ¿es segura tu aplicación Bolt?.

Qué revisa la auditoría de seguridad de Bolt

Lee tu proyecto desde dentro, y se ejecuta cuando pulsas el botón.

Bolt anunció la auditoría el 30 de julio de 2026. En un plan de pago está en el menú Publish como Run security audit: revisa tu código y tu base de datos, corrige sola la mayoría de los problemas, señala el resto y no gasta tus tokens. En todos los planes, también en el gratuito, los ajustes de una base de datos de Bolt tienen una sección Security que ejecuta la comprobación de Row Level Security descrita arriba.

Nuestro escaneo se hizo dos semanas después de que apareciera ese botón, así que los números de arriba no pueden decir cuánto ha cambiado las cosas desde entonces. Lo que sí podemos decir es cómo encajan las dos miradas. La auditoría ve tu proyecto desde dentro, incluidas tablas que tus páginas nunca mencionan, algo que un escaneo desde fuera nunca puede hacer. Un escaneo desde fuera ve lo que un desconocido obtiene de la aplicación publicada. Cuando una auditoría termina, el botón pasa a decir Security audit up to date, y el siguiente cambio que publiques es uno que no ha visto.

Lanza la auditoría antes de publicar y mira desde fuera después. Si las dos no coinciden sobre si una tabla es legible, quédate con la respuesta de fuera, porque es la que obtiene un desconocido.

Cómo revisar tu propia aplicación Bolt

Cinco cosas que mirar. Usa una ventana privada, para que tu propia sesión no responda por un desconocido.

  1. Averigua qué base de datos tienes. Los proyectos nuevos de Bolt usan una base de datos de Bolt por defecto. Si elegiste Supabase al crear el proyecto, o conectaste uno después, tus tablas viven en un proyecto de Supabase en el que puedes iniciar sesión.
  2. Lee la cerradura de cada tabla. Con una base de Bolt, abre la sección Security en los ajustes de la base de datos y ejecuta la comprobación. Con Supabase, abre Authentication → Policies y recorre la lista: una tabla con la Row Level Security desactivada la puede leer cualquiera que tenga la dirección de tu proyecto, y esa dirección está en tu aplicación. Una policy que deja pasar a todo el mundo cuenta como desactivada.
  3. Busca VITE_ en tu proyecto. Cada valor detrás de ese prefijo está en el escaparate. La dirección de un proyecto y una clave publicable van ahí. Una clave que te cobra va en el panel Secrets, leída por una función de servidor. Si alguna estuvo alguna vez detrás del prefijo, rótala primero en el proveedor, porque el valor antiguo sigue funcionando hasta que lo hagas.
  4. Mira tu almacenamiento. Un bucket marcado como público le lista cada archivo a cualquiera que pregunte, incluidos los que tu aplicación nunca muestra.
  5. O deja que lo haga el escaneo. Hace esto desde fuera junto con otras cinco comprobaciones, tarda unos 20 segundos, no pide cuenta y te muestra una nota y lo que la produjo: escanea tu aplicación gratis.

Para que siga así después de publicar

Una comprobación del mes pasado describe la aplicación del mes pasado. En Bolt, publicar es un botón, así que una tabla añadida esta mañana o una clave pegada a medianoche está en vivo en cuanto lo pulsas.

Reeve Monitor vuelve a pasar las nueve comprobaciones por ti:

  • las nueve comprobaciones cada hora, en hasta tres aplicaciones
  • si la aplicación responde, cada 60 segundos
  • un mensaje cuando un resultado cambia, para que un hallazgo nuevo no espere a que mires
  • un informe mensual de lo que vio

Monitor cuesta $12 al mes de tarifa 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.

Si tu aplicación Bolt guarda sus datos en tu propio proyecto de Supabase, Reeve Care guarda una copia. Eso incluye un proyecto que conectaste desde el principio y una base de datos de Bolt que hayas reclamado en Supabase.

  • una copia cifrada de tu base de Supabase cada noche, guardada donde tu proyecto no puede llegar
  • cada copia verificada antes de contar, con un recuento de las filas de cada tabla
  • una restauración con un clic cuando la necesites
  • también tus archivos subidos, en cuanto conectes una credencial de Storage
  • todo lo que hace Monitor

Care cuesta $49 al mes de tarifa de lista por una aplicación, con los mismos siete días gratis.

Una tabla abierta es algo que un desconocido puede leer. Una migración que salió al revés, o un agente con acceso a la base de datos, es algo que puede vaciarla, y ninguna de las nueve comprobaciones de este artículo traería las filas de vuelta. El día en que un agente de IA borró una base de datos de producción muestra cómo se ve eso desde dentro.

Qué hacer esta semana

Qué hacer

  • Busca VITE_ en tu proyecto Bolt y lee cada valor que hay detrás. Una clave que te cobra va en el panel Secrets, leída por una función de servidor.
  • Si alguna vez hubo en esa lista una clave de OpenAI u otra clave de pago, rótala en el proveedor antes de quitarla del código.
  • Ejecuta la comprobación de seguridad de la base de datos, o abre Authentication → Policies en Supabase, y lee la cerradura de cada tabla. Una policy que deja pasar a todo el mundo deja la tabla abierta.
  • Lanza la auditoría de Bolt antes de publicar y luego revisa desde fuera la aplicación publicada.
  • Guarda una copia de tu base de datos donde ni tu proyecto ni tu agente puedan llegar, y comprueba que esa copia se restaura.

Empieza por la búsqueda de VITE_, porque es el único hallazgo en Bolt que cuesta dinero por sí solo. Si todavía estás eligiendo entre builders, qué builder de aplicaciones con IA es el más seguro pone a los cinco uno al lado del otro.

Preguntas frecuentes

¿Es seguro usar Bolt?

En la parte que controla Bolt, nuestros números dicen que sí. En 1.123 aplicaciones en vivo en bolt.host no encontramos ningún certificado defectuoso ni dominios a punto de caducar, 13 aplicaciones publicaban source maps y una dejaba a cualquier web llamar a su API. Lo que decide tu propia aplicación está dentro de ella: si una clave que te cobra acabó en el código que descargan los visitantes, y si tus tablas le responden a un desconocido. Son dos ajustes que puedes revisar tú mismo.

¿Las aplicaciones Bolt son seguras por defecto?

Lo que Bolt publica por ti salió limpio en nuestro escaneo. El resto depende de lo que pasó en el chat. Se supone que Bolt guarda una clave de API de pago en su panel Secrets, detrás de una función de servidor, y tiene una comprobación de base de datos que busca Row Level Security ausente. Ninguna de las dos se ejecuta sola: la auditoría del proyecto es un botón del menú Publish en los planes de pago, y la comprobación de base de datos es una sección que abres tú. En agosto de 2026, 75 de 1.123 aplicaciones Bolt tenían algo con forma de clave en su front end, y 27 de las 35 bases que pudimos consultar le respondieron a un desconocido.

¿Por qué las aplicaciones Bolt filtran claves de API?

Desde fuera no vemos cómo llegó ahí cada clave. La vía que sí podemos nombrar es la variable de entorno. Una variable cuyo nombre empieza por VITE_ se escribe en el JavaScript que descarga cada visitante, y Vite, la herramienta de build detrás de ese prefijo, dice que esas variables nunca deben contener una clave de API. Para la dirección de un proyecto o una clave publicable no pasa nada. Para una clave de OpenAI es una factura. Diez de las 1.123 aplicaciones Bolt que escaneamos llevaban una.

¿Mis datos de Supabase están seguros en una aplicación Bolt?

Depende de un ajuste por tabla. Cuando una aplicación Bolt habla con Supabase desde la página, usa una clave publicable que está hecha para ser pública, así que solo la Row Level Security decide qué recibe un desconocido. Pudimos pedir filas a 35 bases de Bolt sin iniciar sesión, y 27 las entregaron. Es un recuento, y la base es demasiado pequeña para convertirlo en porcentaje. Tus propias policies las lees en unos minutos.

¿Es Bolt más seguro que Lovable?

En la parte de plataforma quedaron empatados: 13 de 1.123 aplicaciones Bolt y 225 de 18.553 aplicaciones Lovable publicaban source maps, algo más de una de cada cien en ambos casos, y ninguna tenía problemas de certificado o de dominio. La diferencia estuvo en las claves. Diez de las 1.123 aplicaciones Bolt llevaban una clave de OpenAI, frente a 18 de 18.554 en Lovable. Diez es un número pequeño, así que léelo como una dirección. La comparación completa de los cinco builders está en un artículo aparte.

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.