2010-07-20 20 views
8

Dicen que las cookies son bad. Personalmente creo que debería haber una manera "más inteligente" de detectar el estado de un usuario en una aplicación web.¿Alternativo a cookies de HTTP?

Say, en la actualidad esto es cómo funciona en un entorno distribuido, donde xyz.com tiene muchas piscinas y servidores (que yo sepa): Registros de

  1. usuario en xyz.com
  2. El módulo de inicio de sesión de xyz.com suelta una cookie en la máquina local del cliente.
  3. Ahora, cuando el cliente va a Feature1 de xyz.com, el grupo feature1 busca una cookie local, si la encuentra y si no ha caducado, Feature1 asume que el cliente está bien y lo deja entrar.

Por lo tanto, feature1 confía ciegamente en el cliente debido a la cookie eliminada por el módulo de inicio de sesión.

Pero siento un error fundamental aquí en la etapa 3. ¿Qué pasa si un hacker clona una cookie e intenta hacer algo? (que es la primera cosa obvia que un hacker intentará hacer, cookie sniffing)

Entonces, ¿hay alguna alternativa a esto? - ¿Cómo funcionará el almacenamiento web, los objetos almacenados flash en el futuro? o las cookies gobernarán?

No busca una respuesta obvia, porque no hay ninguna. Estoy interesado en diferentes puntos de vista para abordar esta prueba.

Gracias

+0

Estoy votando para cerrar esta pregunta como fuera de tema porque explícitamente está pidiendo discusión y opiniones. * No busca una respuesta obvia, porque no hay ninguna. Estoy interesado en diferentes puntos de vista para abordar esta prueba. * –

+0

No estoy de acuerdo en cerrar la pregunta, es un asunto que hoy en día sigue evolucionando, las mejores soluciones viables van y vienen. – davidtaubmann

Respuesta

3

Uno de los principios fundamentales de REST, y me refiero a real REST no es para almacenar el estado en el servidor, si no hay un estado en el servidor, entonces no hay necesidad de una cookie para ser utilizado como una clave para ver ese estado.

+1

¿Puede explicar esto, cómo funcionará esto en el escenario que describí anteriormente? – zengr

+1

no necesita cookies para rastrear el estado en el servidor, no hay ninguna, pasa el estado al servidor del cliente en cada solicitud, lea el enlace sobre REST es muy simple de entender –

+3

@ makerofthings7 pasa las credenciales en cada solicitud, que es parte del estado, no entiende qué ** sin estado ** significa o autenticación segura si cree que necesita cookies para la seguridad. El cifrado de extremo a extremo como SSL hace que las cosas sean seguras, no cookies. –

4

Creo que la información en this resource from google y/o this link le ayudará a encontrar alternativas para guardar información en el lado del cliente.

Básicamente ... hay 4 formas diferentes para almacenar datos en el lado del cliente sin necesidad de utilizar las cookies:

  1. Web SQL (mi favorito, y it's NOT obsolete)
  2. IndexedDB (otra base de datos con diferente estructura y la aceptación)
  3. Web Storage (Session y pares clave/valor local)
  4. Application Cache (archivos de Aplicaciones Web)

Creo que para su necesidad específica, los pares locales de almacenamiento web son la solución correcta.

Cuestiones relacionadas