ServiciosInforme de muestraPreciosEscaneo

Tu app funciona.
Eso no significa que sea segura.

Auditoría de aislamiento multi-tenant en Next.js + Supabase.
Para agencias, proveedores de entidades reguladas y equipos que responden por el código que entregan.

Lo que escribió la IA
const supabase = getServiceClient();                  // ← bypasea RLSconst tenant_id = searchParams.get("tenant_id");      // ← lo elige quien llama

const { data } = await supabase
  .from("pac_companies")
  .select("*")
  .eq("tenant_id", tenant_id);
Lo que debía escribir
const auth = await requireTenant(tenant_id);
if (auth.error) return unauthorized(auth);

const { data } = await auth.supabase                  // cliente con sesión
  .from("pac_companies")
  .select("*")
  .eq("tenant_id", tenant_id);                       // RLS filtra sola
Ver informe de muestra ↗Solicitar revisión ↗

Servicios

Conoce todos los servicios que Santhoris ofrece para ti

Ver mas

Patrones

Fallos comunes en el stack que entregas

Cinco formas de perder el aislamiento entre tenants. Cada hoja es una ruta que verifica sesión y tenant; cada rama seca es una que se alcanza sin verificar nada.

mode: tree layoutSIN_SESION
120120120120134140140147156156156162168168176184184184184184199206206214220220220229238238245251251251251264269269275280280280291297297306312312312312312328334334341346346346359365365372377377377384389389389401406406416421421421431437437443450450450459464464464464476480480489494494494502509509517521521521521535539539551558558558570578578586591591591591600605605612618618618618632638638647653653653662669669680685685685685INICIOsolicitud entrante
verifica sesión y tenantalcanzable sin verificarnodo de decisión

¿Qué tan expuesta está tu app?

Ocho preguntas. Sin registro, sin instalar nada.

01

Si un usuario cambia un número en la URL, ¿puede ver información de otra cuenta?

Es el fallo más común en apps hechas con IA. Yo lo tenía en dos rutas.

02

¿Sabes qué pasa si alguien llama a tu app sin haber iniciado sesión?

Muchas rutas responden con datos aunque no haya sesión.

03

¿Tu base de datos permite que alguien sin cuenta escriba en ella?

Una política mal configurada abre la puerta a cualquiera.

04

¿Los correos que envía tu app incluyen texto que escribió un usuario?

Si no se escapa, se puede enviar phishing desde tu propio dominio.

05

¿Tienes tareas que deberían correr solas cada día? ¿Verificaste alguna vez que corran?

La mía llevaba cinco noches fallando en silencio.

06

¿Usas las mismas contraseñas y llaves en tu computadora que en producción?

Un archivo filtrado en local expone producción directamente.

07

¿Alguien revisó tu código pensando en seguridad, o solo lo escribió la IA?

El modelo optimiza para que funcione, no para que niegue accesos.

08

¿Guardas datos personales de tus usuarios: nombres, correos, documentos de identidad?

En Panamá eso activa obligaciones bajo la Ley 81.