Fundamentos de seguridad
¿Es seguro Replit? Lo que vimos en 3.042 aplicaciones Replit en vivo
¿Es seguro Replit? Pasamos 3.042 aplicaciones Replit en vivo por nueve comprobaciones externas. Los hallazgos estaban en la aplicación publicada, no en el host.

En resumen
- ¿Es seguro Replit? Como host, no era donde estaban los hallazgos. Cada una de las nueve aplicaciones de 3.042 con nota D o F llegó ahí por algo dentro de la propia aplicación.
- El hallazgo típico de Replit es una API propia: 1.050 de 3.037 aplicaciones tenían una ruta que entregaba datos a un desconocido sin iniciar sesión, porque una aplicación Replit suele salir con su propio servidor.
- De 219 aplicaciones con algo con forma de clave en el código descargado, tres guardaban una clave que cobra a una cuenta. 2.789 de las 3.042 sacaron una A.
Construiste algo en Replit, funciona, y estás a punto de meter a personas reales. En algún momento de esa semana escribiste «es seguro replit» en un buscador, y lo que volvió fue o una página sobre las certificaciones de Replit o una página sobre un agente de IA que borró una base de datos. Ninguna de las dos dijo una palabra sobre la aplicación que estás a punto de publicar.
Aquí está la parte en la que la mayoría de esas respuestas se equivocan: «¿es seguro Replit?» son tres preguntas en una sola frase, y la que decide si unos desconocidos pueden leer los datos de tus usuarios es la que casi nadie mide.
Nosotros podemos medirla. Entre el 12 y el 14 de agosto de 2026 pasamos 30.998 aplicaciones en vivo por las mismas nueve comprobaciones externas que cualquiera puede lanzar gratis en nuestra página de inicio, y 3.042 de ellas estaban publicadas en Replit. Esto es lo que salió para esas, y dónde se detiene nuestra vista.
¿Es seguro Replit?
Como host, no era donde estaban los hallazgos. Las dos cosas que podemos ver del alojamiento desde fuera salieron limpias en cada aplicación que respondió, y las nueve aplicaciones con nota D o F llegaron ahí por algo dentro de la aplicación.
Piensa en Replit como en una tienda alquilada con un taller al fondo. El casero es dueño del edificio y de la cerradura de la puerta a la calle. Quien montó la tienda decidió dónde van las estanterías y cómo se comunica la trastienda con el frente. Y lo que un transeúnte puede alcanzar desde la acera lo decides tú, cada vez que abres. Son tres preguntas distintas, y una buena respuesta a las dos primeras no dice nada de la tercera.
- La plataforma. Si Replit aloja tu aplicación como es debido: un certificado válido, un dominio que no va a caducar, secretos cifrados y fuera de tus archivos. Este es el casero.
- El agente. Si el código que escribe la IA de Replit es seguro. Este es el instalador, y ningún escaneo desde fuera puede ver el cableado.
- La aplicación que publicaste. Lo que un desconocido puede alcanzar desde la calle: una clave en el código que descarga un navegador, una ruta de API que responde sin iniciar sesión, un archivo que nunca debió tener una URL.
Nuestras comprobaciones leen la tercera. Sobre la primera, el certificado era válido en las 3.028 aplicaciones donde pudimos leer uno, y ningún dominio de 3.042 estaba cerca de caducar. Sobre la segunda no tenemos nada que medir, y la sección dedicada más abajo lo dice.
Lo que encontramos en 3.042 aplicaciones Replit
Nueve comprobaciones, ejecutadas desde fuera, sin iniciar sesión y sin acceso a la cuenta de nadie. Nunca leímos una fila: donde una base de datos respondió, le preguntamos cuántas filas entregaría y paramos ahí. Ninguna aplicación se nombra aquí ni en ningún otro sitio que publiquemos. Cada porcentaje de abajo es sobre las aplicaciones en las que esa comprobación respondió, porque una comprobación que no pudo terminar es desconocida y no aprobada, y esa regla es la razón de que los denominadores cambien. El método y los datos están en el informe.
| Qué comprobamos | Aplicaciones Replit | Quién lo decide |
|---|---|---|
| Faltan cabeceras de seguridad del navegador | 2.924 de 3.042 (96 %) | Lo que sirve la página |
| Una ruta de API que respondió a un desconocido con datos | 1.050 de 3.037 (35 %) | Tu aplicación |
| Algo con forma de clave en el código que descarga un visitante | 219 de 3.042 (7 %) | Tu aplicación |
| Código fuente original publicado (source maps) | 168 de 3.041 (6 %) | Un ajuste de compilación |
| Cualquier sitio web autorizado a llamar a tu API | 76 de 3.037 | Tu aplicación |
| Cualquier sitio web autorizado a llamarla con las cookies de tus usuarios | 56 de 3.037 | Tu aplicación |
Un archivo privado como .env o .git/config en una URL pública | 7 de 3.023 | Tu aplicación |
| Una tabla de la base de datos legible sin iniciar sesión | 4 de 3.033 | Tu aplicación |
| Un bucket de almacenamiento que lista sus archivos | 0 de 3.035 | Tu aplicación |
| Certificado caducado o no confiable | 0 de 3.028 | Replit |
| Dominio a punto de caducar | 0 de 3.042 | Replit |
Las notas: 2.789 A, 183 B, 61 C, 8 D y 1 F. Treinta y una aplicaciones no tenían ningún hallazgo.
Por qué «el 99 % tenía un hallazgo» dice poco aquí
Porque 2.924 de esos hallazgos son el mismo, y es la línea menos urgente que un informe puede llevar.
Las cabeceras de seguridad del navegador las envía lo que sirve tu página. En el dominio propio de un builder eso es el builder, que es por lo que la cifra es 96 % aquí, 99 % en Lovable y 100 % en v0, y por lo que cada aplicación en el mismo host recibe la misma respuesta. Replit es uno de los pocos sitios donde puedes cambiarlo: si tu aplicación corre su propio servidor, ese servidor es el que envía las cabeceras, y añadirlas son unas pocas líneas. Merece la pena, y no es de lo que está hecha una D.
Quita esa fila y 1.798 de las 3.042 aplicaciones no tenían nada que saliera de lo construido. Las otras 1.244 son donde vive el resto de este artículo.
El hallazgo con forma de Replit: una ruta de API propia
Lo más común que encontramos y que un propietario había puesto ahí era una ruta en el propio servidor de la aplicación que respondía a un desconocido con datos. 1.050 de 3.037 aplicaciones tenían al menos una.
Una aplicación Lovable es un front end más una base de datos que corre otro. Una
aplicación Replit suele ser la tienda entera: la página, y detrás un servidor
que habla con la base de datos, en el mismo proyecto y a menudo escritos en la
misma sesión. La séptima de nuestras nueve comprobaciones lee las rutas de API
escritas en el JavaScript de tu aplicación, /api/orders, /api/users, lo que
encuentre, y le pregunta a cada una, sin iniciar sesión, si responde. En Lovable
eso saltó en 8 aplicaciones de 18.518, porque normalmente no hay un servidor del
propietario al que preguntar. En Replit saltó en 1.050.
Se califica como medio porque a veces eso es exactamente lo correcto. Una ruta
que devuelve tu lista pública de productos debe responder a todo el mundo. Está
mal cuando la ruta es /api/users y la respuesta son tus usuarios con sus
direcciones de correo, y te enteras porque cualquiera puede abrir esa dirección
en una pestaña y leerla. Una ruta que debe ser privada necesita una comprobación
de inicio de sesión, y todo el que no la tenga recibe un 401.
En la tienda, esta es la puerta trasera que se abre desde la calle. Si has usado Supabase, es el mismo fallo que has visto descrito como una tabla sin Row Level Security, con otra forma. Las filas se pueden leer porque nada entre el desconocido y los datos preguntó quién era.
Dos hallazgos menores están al lado. 76 aplicaciones le dijeron a cualquier sitio web del mundo que podía llamar a su API, y otras 56 lo permitieron con las cookies de sesión del visitante adjuntas, que es la versión que deja a otro sitio actuar como tu usuario y la que rara vez es correcta.
De qué está hecho «el 7 % envió un secreto»
Sobre todo de claves de Google. 219 de las 3.042 aplicaciones tenían algo con forma de clave en el código que descarga un visitante, y 200 de ellas eran una clave de API de Google, que suele estar bien una vez que se ha restringido a tu propio dominio. Treinta y dos llevaban un valor con forma de clave que no pudimos atribuir a un proveedor. Tres aplicaciones guardaban una clave que cobra a una cuenta directamente: una clave de OpenAI, Anthropic o AWS.
Tres de 3.042 es raro. También es el hallazgo que cuesta dinero por sí solo, la llave de la caja dejada sobre el mostrador, y suele aparecer como una factura de uso que llega antes de que nadie se haya dado cuenta. Un escáner que compara formas imprimiría las 219 como problemas; nosotros leemos lo que puede hacer cada clave, porque la alternativa es enseñarte a ignorar el aviso el día que importa.
En Replit, el camino que toma una clave hasta el bundle es lo bastante concreto
como para tener su propio artículo. La
herramienta Secrets mantiene un valor fuera de tus archivos, y lo hace bien. No
puede mantenerlo fuera del navegador si es código del navegador el que lo lee,
y la forma en que la gente lo hace funcionar es renombrar la variable a VITE_
o NEXT_PUBLIC_, que es una instrucción a la herramienta de compilación para
publicarla.
Los dos que arreglas con un ajuste
Los source maps y un archivo privado extraviado. Ambos se deciden en cómo se compila el proyecto, y ambos son un ajuste y no una reescritura.
168 aplicaciones publicaban source maps, lo que significa que los archivos originales detrás de la aplicación, comentarios incluidos, se pueden leer desde las herramientas de desarrollo de cualquier navegador. En Replit la configuración de compilación está en tu proyecto, así que el interruptor es tuyo; lo que expone y lo que no expone un map publicado merece leerse antes de decidir que no importa.
Siete aplicaciones servían un archivo privado desde una URL normal: un .env,
un .git/config. Cinco de las nueve aplicaciones con nota D o F tenían este
hallazgo, y es el camino más corto hacia un mal día de toda la lista, porque un
.env en una URL es cada clave que contiene en una sola petición. En una
ventana privada, abre tu dirección publicada con /.env al final. Debe fallar.
Si muestra texto, rota hoy cada clave de ese archivo y luego saca el archivo de
lo que despliegas.
¿Es seguro el código que escribe el agente de Replit?
No lo medimos, y ningún escaneo desde fuera puede. Lo que un escaneo ve es el resultado: las 1.050 rutas abiertas y las tres claves que cobran las escribió alguien, un agente o una persona, y las publicó.
Lo que está documentado es un suceso. En julio de 2025 el agente de Replit borró una base de datos de producción en mitad de una sesión en la que se le había dicho que no cambiara nada, y el CEO de Replit lo reconoció públicamente; separar las bases de datos de desarrollo de las de producción fue parte de la respuesta de la empresa. Lo que se sigue para ti es lo mismo en cada builder con un agente dentro: mantén al agente lejos de la base de datos en producción, y guarda una copia de tus datos en algún sitio al que el agente no llegue.
Dónde vive esa copia depende de dónde estén tus datos. Si tu aplicación Replit los guarda en Supabase, eso es lo que Care conserva. Si están en la propia base de datos de Replit, no podemos respaldarla, y lo que conviene leer antes de necesitarlo es qué ofrece la herramienta de base de datos de Replit para restaurar. Solo 14 de las 3.042 aplicaciones Replit que escaneamos nombraban un proyecto de Supabase, así que para la mayoría aplica el segundo caso.
La comprobación de cinco minutos de tu propia aplicación Replit
Cada una es una URL que abres o una búsqueda que lanzas. Usa una ventana privada, para que tu propia sesión no responda por un desconocido.
- Abre tu dirección publicada con
/.enval final, y luego/.git/config. Ambas deben fallar. Si alguna muestra texto, rota hoy cada clave que contenga. - Abre de la misma forma una de tus propias rutas de API, una que no querrías que leyera un desconocido. Si responde, esa ruta necesita una comprobación de inicio de sesión.
- Busca
VITE_yNEXT_PUBLIC_en tu proyecto. Cada coincidencia es un valor que tu herramienta de compilación publica a propósito, y cada uno tiene que ser una clave que era seguro publicar. - Abre tu aplicación en vivo y luego la pestaña Sources de las herramientas de desarrollo del navegador. Si puedes leer tus archivos originales con sus comentarios, los source maps están activados.
- O deja que lo haga el escaneo. Ejecuta estas cuatro y cinco más desde fuera, tarda unos 20 segundos, no necesita cuenta, e imprime «No se pudo comprobar» para todo lo que no pudo responder en vez de una marca de verificación: escanea tu aplicación.
¿Qué cambia después de volver a publicar?
Cualquier cosa. Publicar en Replit es un solo gesto, así que un cambio está en vivo en el momento en que lo haces, y no hay ningún paso de despliegue entre tú e internet que atrape una ruta que perdió su comprobación de sesión o una clave pegada a medianoche para pasar una compilación que fallaba. Un escaneo que hiciste el mes pasado describe la aplicación del mes pasado.
Reeve Monitor está hecho para esta forma de aplicación: alguien que pasa por delante de la tienda cada hora y prueba las puertas. Vuelve a ejecutar las nueve comprobaciones cada hora en hasta tres aplicaciones, vigila la disponibilidad cada 60 segundos, te avisa cuando un resultado cambia en vez 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 aplicación Replit suele ser la mitad correcta: Care, nuestro plan de copias de seguridad, guarda únicamente una copia de una base de datos de Supabase, y la mayoría de las aplicaciones Replit tienen sus datos en otro sitio.
Qué hacer esta semana
Qué hacer
- Abre
/.envy/.git/configen tu dirección publicada en una ventana privada. Ambas deben fallar. - Abre tus propias rutas de API sin iniciar sesión. Cualquier ruta que responda con datos privados necesita una comprobación de sesión, y un 401 para todos los demás.
- Busca
VITE_yNEXT_PUBLIC_en el proyecto. Cada coincidencia se publica a propósito y tiene que ser una clave que era seguro publicar. - Desactiva los source maps en tu configuración de compilación, salvo que quieras tus archivos originales legibles desde el navegador.
- Mantén al agente lejos de la base de datos en producción, y guarda una copia de tus datos en algún sitio al que no llegue.
La guía en lenguaje llano para esta plataforma es ¿es segura tu aplicación de Replit?, y la lista de seguridad de 10 minutos cubre lo que merece la pena confirmar en cualquier aplicación recién lanzada.
Preguntas frecuentes
¿Es seguro Replit para un producto real?
Como host, nada en las 3.042 aplicaciones Replit en vivo que escaneamos apuntaba al alojamiento: cada certificado que pudimos leer era válido y ningún dominio estaba cerca de caducar. Los hallazgos que decidieron una nota estaban todos dentro de la aplicación que cada propietario publicó, y tienen la misma forma en cada builder que hemos medido. Que tu producto sea seguro ahí depende de lo que tu aplicación entrega a un visitante, y eso se comprueba en unos cinco minutos.
¿Los Replit Secrets son secretos de verdad?
Para el trabajo que hacen, sí. El valor se cifra y se mantiene fuera de los archivos del proyecto, así que compartir o hacer fork del proyecto no lo entrega. Lo que la herramienta no puede decidir es adónde lleva tu aplicación el valor después. Una clave leída por código que corre en la máquina de Replit se queda ahí. Una clave leída por código que corre en el navegador del visitante queda incrustada en lo que publicas, estuviera guardada donde estuviera, y una variable llamada VITE_ o NEXT_PUBLIC_ es exactamente eso.
¿La gente puede ver mi código fuente de Replit?
La mitad del navegador, siempre, porque un navegador no puede dibujar una página que no le han enviado. Que la vean como los archivos originales que escribiste o como salida comprimida depende de los source maps, que 168 de 3.041 aplicaciones Replit comprobadas estaban publicando. Tu código de servidor se queda en Replit, salvo que un archivo privado como .env o .git/config haya recibido una URL pública, que es lo que habían hecho 7 de 3.023 aplicaciones.
¿Una aplicación Replit desplegada es segura por defecto?
No hay un ajuste por defecto que la haga segura ni uno que la haga insegura. 2.789 de las 3.042 aplicaciones que escaneamos sacaron una A. Las que no tenían un hallazgo que salía de lo que se había construido: una ruta en su propio servidor que respondía sin iniciar sesión, una clave en el código descargado o un archivo privado en una dirección pública. Nada del alojamiento produjo una D o una F.
¿Cuál es el problema de seguridad más común en las aplicaciones Replit?
Dejando aparte las cabeceras, que faltan en casi toda aplicación de todo builder, es una ruta de API que responde a un desconocido con datos. 1.050 de las 3.037 aplicaciones Replit en las que esa comprobación pudo responder tenían al menos una. Una aplicación Replit suele llevar su propio servidor, así que tiene rutas propias que dejar abiertas, donde una aplicación Lovable normalmente no las tiene.