Los usuarios pueden ver los datos de los demás
Alguien inició sesión y vio una lista que no era la suya — pedidos de otros, mensajes de otros. O todavía no ha pasado y se te acaba de ocurrir que podría pasar, que es el mejor momento para estar leyendo esto.
Por qué cuesta verlo
Este es el defecto más grave que tienen estas aplicaciones y el más silencioso. Una política de seguridad a nivel de fila que falta no lanza ningún error, no ralentiza nada y no genera un ticket de soporte de la persona cuyos datos quedaron expuestos — la página funciona, para todos, mostrándolo todo.
También es fácil llegar hasta aquí de buena fe. La seguridad a nivel de fila está desactivada por defecto hasta que escribes una política; una tabla añadida después no hereda ninguna; y una consulta escrita contra tu propia cuenta parece correcta mientras eres el único usuario.
Qué hace Sixty al respecto
Cada consulta se revisa buscando una forma concreta: una tabla que guarda datos de una sola persona, ninguna condición que la acote en toda la sentencia — ni user_id, ni org_id, ni tenant_id, ni auth.uid() — y más filas de vuelta de las que explicaría una búsqueda concreta. Las tres cosas tienen que cumplirse antes de que diga nada.
Cuando se cumplen, el hallazgo nombra la consulta y la operación, y te pide que lo confirmes en lugar de declarar una brecha. Una política aplicada dentro de la base de datos no se ve en la sentencia que envió tu aplicación, así que lo que esto encuentra es una consulta que sería insegura si faltara RLS — que es justo la consulta que hay que revisar cuando RLS es lo que más probablemente falta.
Qué no hace
No puede ver tus políticas, solo tus sentencias, así que puede equivocarse en la dirección segura: una consulta correctamente protegida por una política puede aparecer marcada igualmente. Tampoco te dirá de quién eran los datos expuestos — no se recoge nada sobre tus usuarios, que es la misma razón por la que instalarlo no añade nada a tu aviso de cookies.
OpenTelemetry
¿Ya tienes OpenTelemetry?
Conserva tu collector y exportadores actuales. Sixty puede ingerir sus trazas conectadas y métricas útiles del runtime para inferir regresiones por versión; los agentes nativos aportan más detalle de funciones y drivers cuando existen.