🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónEl inquilino en cada consulta y en cada caché
5 tareas · 40 min · Principiante
En el modelo de fila, el aislamiento depende de que cada consulta lleve el inquilino correcto, y de que ese inquilino salga de un lugar en el que el cliente no puede escribir. Una ferretería de Arcaduz se quejó de que su lista de precios traía descuentos que no son suyos. Tienes el código que decide el inquilino, el filtro automático de las consultas, el buscador, el servicio de precios y cuarenta minutos de la capa de caché.
Objetivo de la sala
En el modelo de fila, el aislamiento depende de que cada consulta lleve el inquilino correcto, y de que ese inquilino salga de un lugar en el que el cliente no puede escribir. Una ferretería de Arcaduz se quejó de que su lista de precios traía descuentos que no son suyos. Tienes el código que decide el inquilino, el filtro automático de las consultas, el buscador, el servicio de precios y cuarenta minutos de la capa de caché.Antes de filtrar por inquilino, la aplicación tiene que saber cuál es. Esa decisión es de autorización y sigue la misma regla que cualquier otra: se toma de algo que el servidor verificó (la sesión de la persona que inició sesión, el token que emitió el propio proveedor, la pertenencia vigente de esa cuenta a ese cliente), nunca de algo que el cliente envía y puede cambiar, como una cabecera, un parámetro o un subdominio sin comprobar.
Si un cliente necesita operar varias sucursales o empresas, la forma correcta no es dejarle elegir el inquilino libremente: es registrar a qué inquilinos pertenece la cuenta y comprobar en el servidor que el elegido está en esa lista.
Responde para continuar
Un ERP integrado pide trabajar con dos sucursales que son dos inquilinos distintos. ¿Cómo debe decidir la API el inquilino de cada petición?
Ver pista de ayuda
¿Quién puede escribir lo que llega en una cabecera o en una URL?
Abre ResolverInquilino.php. El panel web hace lo correcto. Mira la otra rama, la de las integraciones.
Responde para continuar
¿Qué cabecera de la petición decide el inquilino en la API de pedidos cuando viene? Escribe su nombre completo.
Muchos frameworks permiten registrar un filtro automático en el modelo de datos, de modo que toda consulta de ese modelo lleve la condición del inquilino sin que nadie tenga que escribirla. Es una buena red, pero el mismo framework ofrece la forma de quitarla para un caso puntual, y cada uso de esa salida es una consulta sin red. En una revisión se buscan todas, y cada una tiene que justificar por qué cruza clientes y quién la autorizó.
Las consultas escritas a mano no pasan por ese filtro: llevan la condición explícita o no la llevan. Compara BusquedaRapidaController.php con ReporteRotacionController.php.
Responde para continuar
¿Qué método usa el buscador de productos para quitar el filtro por inquilino? Escribe su nombre sin paréntesis.
Una caché guarda una respuesta ya calculada bajo una clave y la entrega a la siguiente petición que pida la misma clave. No sabe quién pregunta: si el resultado depende del cliente y la clave no incluye al cliente, la segunda petición recibe lo que se calculó para el primero. MITRE lo cataloga como uso de una caché que contiene información sensible (CWE-524), dentro de la exposición de un recurso a la esfera equivocada (CWE-668). La regla práctica: si el valor o su autorización cambian por cliente, el identificador del cliente va en la clave; lo que de verdad es común a todos va en un espacio de claves global declarado como tal.
Lee PreciosCategoria.php y luego registro-cache.txt con inquilinos.txt al lado.
Responde para continuar
¿Qué cliente recibió desde la caché precios calculados para otro? Escribe su slug.
El equipo propone bajar la duración de la clave de precios de 15 minutos a 1 minuto «para que el cruce dure menos».
Responde para continuar
¿Qué le respondes?
Ver pista de ayuda
Mira cómo arma su clave resumenTablero en el mismo archivo.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.