Estoy considerando implementar una verificación de propiedad en los objetos JSON y quiero evitar volver a la base de datos para asegurar la propiedad de dicho objeto / registro (es decir, para evitar que un usuario actualice un objeto / registro que no posee) en su mayoría operaciones de CRUD). Esto ocurriría en el contexto de una aplicación web / api de servicio.
Mi idea es tener un sistema privado del lado del servidor asignado a la "propiedad" del UUID v4 vinculado a cada registro de usuario, de modo que al pasar cualquier objeto JSON propiedad del usuario a la vista, el sistema cifra el UUID privado de la "propiedad" del propietario usando bcrypt con un salt aleatorio y lo asigna al objeto / registro (donde podría persistir junto con el registro para propósitos de almacenamiento en caché, por lo que no es necesario volver a cifrarlo). Además, debo señalar que es posible que los objetos de propiedad se puedan cifrar por separado, cada uno con su propio sal generado aleatoriamente, aunque en realidad son el mismo UUID del usuario (esto es necesario para ayudar a evitar el seguimiento de la propiedad del objeto del usuario en ciertas aplicaciones) casos).
Más tarde, si un usuario intenta actualizar dicho objeto, el servidor tendría que validar su UUID privado contra el hash bcrypt para asegurarse de que tienen los derechos de propiedad para actualizar el registro.
Esto se supone que yo cifraría usando un número apropiado de rondas para el cifrado. Otra suposición que estoy haciendo es que el tiempo de cifrado y verificación superaría cualquier tiempo de verificación de la base de datos. El último supuesto a señalar es que esto es estrictamente un control de seguridad de la aplicación y no haría nada si alguien realmente se apoderara de la base de datos.
Mi idea actual es que, dado que el UUID es aleatorio y su tamaño de cadena grande (junto con un número apropiado de rondas) haría que tener estos hash bcrypt expuestos públicamente no sea un problema tan grande. ¿O es este enfoque simplemente demasiado riesgo / supervisión?