Seguridad

Vas a confiarnos la facturación, los datos de tus huéspedes y la dirección de tus clientes. Esta página dice lo que está hecho y, al final, lo que falta — porque la segunda lista dice más de nosotros que la primera.

15
Cosas que demostramos
01
Cosas que faltan

Aislamiento

La frontera es la base de datos, no una condición en el código.

La mayoría de las plataformas meten a todos los clientes en las mismas tablas y los separan mediante una columna. Basta una consulta escrita deprisa, sin el filtro, para que un cliente vea los datos de otro. Aquí esa consulta no tiene nada que ver.

Lo habitual

WHERE tenant_id = ?

Todos los clientes en las mismas tablas. La separación es un filtro que alguien tiene que acordarse de escribir, en cada consulta, para siempre. Olvidarlo una vez basta.

Aquí

USE ajja_tenant_…

Cada cliente en su propia base de datos. La consulta sin filtro devuelve igualmente solo lo que es tuyo, porque la conexión ya se apuntó a tu lado antes de que la consulta existiera.

ajja_tenant_<slug>

Una base de datos por cliente
Se llama ajja_tenant_<tu-nombre> y tiene solo tus 140 tablas. La conexión se cambia en cada petición a la que te pertenece.

DROP DATABASE

Borrar es borrar
Cuando un cliente se va, su base de datos se elimina entera. No queda un registro marcado como borrado esperando a que alguien se dé cuenta.

quién eres · qué contratas · qué módulos

La central solo sabe lo mínimo
La base de datos central guarda quién eres, qué contratas y qué módulos tienes. El trabajo del día a día nunca pasa por ella.

Cuentas y accesos

Quién entra, cómo entra y hasta dónde llega.

Cada una de estas comprobaciones se ejecuta en el servidor. Ninguna depende de lo que el navegador decida mostrar u ocultar.

  1. 01 TOTP · 8 códigos · secreto cifrado

    Dos pasos, si quieres

    Autenticación en dos pasos con la aplicación que ya usas. El secreto solo pasa a valer después de que confirmes un código generado con él, para que nadie se quede fuera por haber leído mal el QR. Recibes 8 códigos de recuperación, y tanto ellos como el secreto se guardan cifrados en la base de datos.

  2. 02 5 minutos

    El segundo paso tiene plazo

    Entre la contraseña correcta y el código del móvil hay un tique temporal que dura cinco minutos. Pasado ese tiempo se vuelve al principio — no queda un medio inicio de sesión abierto esperando.

  3. 03 inicio de sesión 5/min · 2FA 10/min · registro 3/hora · API 120/min

    Intentos con límite

    El inicio de sesión tiene un tope por correo electrónico y por dirección a la vez: cinco intentos por minuto para el mismo par, veinte por minuto para la misma dirección. Contar solo el correo permitiría a un desconocido bloquearte la cuenta fallando a propósito. La verificación en dos pasos, el registro y los formularios públicos de check-in y de reserva también tienen tope. La API ya autenticada está limitada a 120 peticiones por minuto y por usuario, no por dirección — dos compañeros en la misma oficina no comparten el presupuesto el uno del otro.

  4. 04 módulo + rol · 403

    Permisos comprobados en el servidor

    Ocultar un elemento del menú no es seguridad. Cada dirección pasa por dos comprobaciones separadas — el módulo está activo en este cliente, y tu rol ve ese módulo — y responde 403 incluso a quien escriba la dirección a mano.

  5. 05 404, no 403

    Un token solo sirve en su casa

    Un token válido, apuntado al nombre de otro cliente, no lee nada. Y la respuesta es 404, no 403: quien anda probando nombres de clientes no llega a saber cuáles existen.

  6. 06 un recurso por enlace

    Portales sin cuenta

    El huésped y el propietario entran por un enlace con clave propia, que abre una sola cosa y puede tener caducidad. No hay cuenta que robarles ni contraseña que reutilicen en otro sitio.

Una petición, de principio a fin

Siete preguntas antes de que nadie vea una línea tuya.

Esto es lo que ocurre entre que pulsas un botón y aparece el resultado. El orden está fijado en el arranque de la aplicación, no dejado al azar de cómo se escribió cada ruta — porque una comprobación que se ejecuta demasiado tarde ya ha dejado que la petición empiece a trabajar.

  1. 01 404

    ¿De quién es esta casa?

    El dominio propio, el subdominio o la cabecera de la petición dicen a qué cliente pertenece. Nombre desconocido, aquí termina.

  2. 02 402

    ¿Está activa la suscripción?

    Un espacio de trabajo suspendido no se sirve, ni siquiera para lectura.

  3. 03 →

    Apuntar la conexión

    La conexión a la base de datos pasa a apuntar a la de ese cliente. Todo lo que venga después, errores incluidos, solo alcanza este lado.

  4. 04 401

    ¿Quién está pidiendo?

    Se comprueba el token. Sin un token válido no hay paso cinco.

  5. 05 429

    ¿Cuántas peticiones has hecho ya?

    120 por minuto, contadas por usuario. Por encima de eso, el servidor dice que basta.

  6. 06 404

    ¿Perteneces a este cliente?

    El usuario del token y el cliente de la petición tienen que ser el mismo. Es esta unión la que impide que un token legítimo lea la casa de al lado.

  7. 07 403

    ¿Puedes ver este módulo?

    El módulo tiene que estar activo en el cliente y visible para tu rol. Dos comprobaciones, no una.

Solo después de estas siete es cuando los números de la dirección se transforman en registros — y siempre a partir de la base de datos que eligió el paso tres.

Lo que queda registrado

Quién hizo qué, nosotros incluidos.

Un sistema que no registra nada te obliga a creer. Preferimos que puedas comprobarlo.

Los datos son tuyos

La puerta de salida está abierta y señalizada.

Una plataforma que dificulta la salida está confesando que no puede retenerte de otra manera.

una petición, un archivo

Exportación completa
Una petición devuelve todo lo que es tuyo, de la base central y de tu base de datos, con la fecha en que se extrajo. Las contraseñas de tu equipo quedan fuera, como debe ser.

sin penalización

Sin tarifa de salida
Cancelas cuando quieras. Lo que exportaste es tuyo y se lee en cualquier herramienta — no es un formato nuestro que solo abrimos nosotros.

Qué sale

  • Clientes
  • Proyectos
  • Facturas
  • Citas
  • Galerías
  • Fotografías
  • Reservas
  • Órdenes de servicio
  • Artículos
  • Rutas
  • Documentos
  • Propuestas
  • Equipo
  • Suscripción
  • Solicitudes de soporte

Lo que todavía no tenemos

La lista corta, antes de que la descubras tú solo.

Nada de esto está prometido ni contratado. Está aquí para que sepas lo que estás comprando hoy.

¿Preguntas que esta página no ha respondido?

Si vas a confiarnos datos de terceros, tienes derecho a respuestas concretas antes de firmar. Crea la cuenta y pregunta, o pregunta primero.

14 días gratis, con la tarjeta validada sin cobro. Cancelas antes del 15.º día tras la suscripción y no pagas nada.