Supongamos que tenemos un gran documento JSON que solo ciertos usuarios pueden ver, pero que rara vez cambia, pero que si cambia, los usuarios esperan ver el cambio con bastante rapidez. Tiene sentido utilizar etags para esto: guarda el documento completo que se transfiere por el cable si no se modificó, pero envía el documento si lo ha hecho.
Un riesgo parece ser que si varias personas usan la misma ventana del navegador:
- Alice inicia sesión en el sitio y el recurso se le envía con una etiqueta
- Alice cierra la sesión y va a almorzar
- Bob usa su navegador para iniciar sesión como él mismo, pero no puede ver el recurso
- Bob busca en el caché del navegador, ve un etag que fue almacenado por el navegador, y configura su navegador para enviar ese mismo etag - ahora Bob puede ver los datos
Supongo que dado que Bob ya está usando la instancia del navegador de Alice, ya podía ver lo que hay en el caché y, por lo tanto, podría leer los datos de todos modos.
Parece que no hay una forma segura de utilizar etags (¿o el almacenamiento en caché del navegador en general?) para obtener información confidencial, y debemos almacenar los datos en la memoria con JavaScript. ¿O nos falta una forma específica en la que está destinada a ser utilizada?