Optimizar la recuperación de datos del usuario usando S3

3

Estoy escribiendo una aplicación móvil que se comunica con mi servidor mediante REST. En cada inicio, la aplicación realiza una llamada a la api del servidor para verificar si hubo un cambio en los detalles del usuario (usando un parámetro lastUpdate ), la api devuelve el objeto de usuario actualizado en caso de que haya un cambio.

Problema

El inconveniente de este enfoque, por supuesto, es que cada lanzamiento de la aplicación provoca una llamada a la API (y una consulta SQL) a mi servidor.

Solución

Tuve la idea de usar el encabezado HTTP ETAG\last-modified y almacenar los detalles del usuario como un archivo json en el depósito S3 (control de acceso + S3). De esa manera, la aplicación puede verificar ese archivo (en lugar de una llamada directa a la api). Guardaré muchas conexiones a mi servidor y también muchas consultas de bases de datos.

Pregunta

Parece una solución legítima, aunque de alguna manera tengo la sensación de que almacenar todos los datos de mis usuarios en archivos en S3 no es seguro ...

¿Qué piensas?

    
pregunta rizon 22.10.2013 - 18:39
fuente

1 respuesta

2

El control de acceso de S3 no es realmente adecuado para la funcionalidad. Si cada instancia de la aplicación usa las mismas credenciales para acceder a S3, los registros JSON podrían verse comprometidos por un atacante que haya descompilado la aplicación.

si desea realizar un cambio en un registro de usuario almacenado en S3, el cambio no se propagará de inmediato. Por lo tanto, si su aplicación tiene un user_state=disabled , es posible que este cambio no se refleje inmediatamente en s3.

Considere usar memcachd para almacenar en caché los registros json. Acceda a los registros utilizando un token temporal y aleatorio.

    
respondido por el rook 22.10.2013 - 20:48
fuente

Lea otras preguntas en las etiquetas