| Aislamiento por fila |
Activo |
Todas las tablas del negocio tienen Row Level Security activa, con políticas que exigen
rol y cuenta a la vez. El frontend filtra por comodidad; la que decide es la base. |
| Sin sesión no hay datos |
Activo |
El rol anónimo no tiene privilegios sobre las tablas del negocio. Aunque alguien tome la
clave pública que vive en el navegador, no obtiene ni una fila. |
| Escrituras públicas selladas en el servidor |
Activo |
Un formulario nunca decide a qué cuenta pertenece lo que envía. El servidor resuelve el
negocio por su dominio, y los mensajes de WhatsApp por el número al que llegaron. Lo que diga
el navegador no se cree. |
| Segundo factor |
Activo |
La administración de la plataforma exige un segundo factor verificado. Sin él, la sesión
pierde esos permisos automáticamente, aunque el usuario sea quien dice ser. Los administradores
de cada negocio también pueden activarlo, y se lo recomendamos. |
| Doble llave en lo irreversible |
Activo |
Eliminar una cuenta pide segundo factor reciente, una frase de confirmación escrita a mano
y un respaldo completo. Si el respaldo no se completa, el borrado se cancela. |
| Política de contenido en el navegador |
Activo |
El panel y los sitios de cliente aplican una CSP que bloquea de verdad, no solo advierte:
nada de scripts de fuera, nada de código evaluado al vuelo, y el panel no puede embeberse dentro
de otra página para engañar a un usuario. |
| Mensajes entrantes firmados |
Activo |
Cada mensaje de WhatsApp que llega se valida contra su firma criptográfica. Si la firma no
cuadra, se descarta. Y si el sistema no encuentra su secreto de validación, rechaza todo el
tráfico en vez de dejarlo pasar. |
| Freno a los envíos automatizados |
Activo |
Los formularios públicos tienen límites por origen y por cuenta dentro de una ventana de
tiempo. Los intentos quedan registrados en una tabla que ningún cliente puede leer, para que la
dirección de un visitante no quede a la vista de nadie. |
| Origen restringido en el servidor |
Activo |
Las funciones que trabajan con una sesión iniciada solo atienden peticiones de orígenes
autorizados. Una página ajena no puede pedirles nada en nombre de tu usuario. |
| Anti-bot en el ingreso |
Activo |
Cloudflare Turnstile protege el acceso, y el token se verifica en el servidor, no en el
navegador. No usamos reCAPTCHA: molesta al usuario y no protege más. |
| La sesión caduca sola |
Activo |
Una sesión abierta no dura para siempre. Vence y obliga a entrar de nuevo, aunque nadie
se acuerde de cerrarla. |
| Registro de errores propio |
Activo |
Los errores del navegador se guardan en nuestra base, no en un servicio extranjero. Solo
Moderniva los lee, ni siquiera el propio cliente, porque el detalle de un error puede arrastrar
datos personales de terceros. |
| Cifrado en tránsito |
Activo |
Todo viaja por HTTPS con certificados gestionados por Cloudflare, incluidos los dominios
propios de cada cliente. |
| Cambios versionados |
Activo |
Ningún cambio de la base ocurre a mano sobre producción. Todo queda escrito, versionado y
es reversible. |