2011-01-10 17 views
7

Necesito algo así como una cookie, pero específicamente no quiero que regrese al servidor. Lo llamo una "cookie de sesión del lado del cliente", pero cualquier mecanismo razonable sería genial.Cookies solo del lado del cliente

Básicamente, quiero almacenar algunos datos cifrados en el servidor y hacer que el usuario ingrese una contraseña en el navegador. El navegador descifra los datos con la contraseña (o crea y cifra los datos con la contraseña) y el servidor almacena solo datos encriptados. Para mantener los datos seguros en el servidor, el servidor no debe almacenar y nunca debe recibir la contraseña. Lo ideal es que haya una caducidad de la sesión de cookies para limpiar.

Por supuesto, necesito que esté disponible en varias páginas a medida que el usuario recorre el sitio web.

Lo mejor que se me ocurre es algún tipo de mecanismo de iframe para almacenar los datos en variables de JavaScript, pero eso es feo. ¿Alguien tiene alguna idea de cómo implementar algo como esto?

FWIW, la plataforma es ASP.NET, pero supongo que eso no importa. Debe admitir una amplia gama de navegadores, incluido el móvil.

En respuesta a una respuesta a continuación, déjenme aclarar. Mi pregunta no es cómo lograr la criptografía, eso no es un problema. La pregunta es dónde almacenar la contraseña para que sea persistente de una página a otra, pero no más allá de una sesión, y de tal forma que el servidor no la vea.

+0

Quiero mantener los datos encriptados en el servidor, y solo accesibles cuando el usuario tiene la contraseña. –

+0

Sí, esto debería hacerse en javascript. Sin embargo, si está tratando con una gran cantidad de datos, está procesando mucho en el navegador del cliente. –

Respuesta

5

Por lo que estás buscando, diría que javascript es lo mejor que puedes hacer.

Puede recuperar los datos cifrados en el servidor y descifrarlos utilizando javascript en el lado del cliente. Sin transmisión de contraseña, ningún secreto para el usuario.

Depende qué algoritmo de cifrado que está utilizando, pero hay bibliotecas para que (por ejemplo Stanford Javascript Crypto Library)

(pero no entiende por qué estás hablando acerca de las cookies)

Si usted está interesado en el aspecto de almacenamiento más que el aspecto de criptografía, tal vez usted podría considerar la posibilidad de Thomas Frank session variables

+0

Gracias por su respuesta. Mi pregunta era más sobre dónde almacenar la contraseña, no sobre el cripto en sí mismo. Pero editaré mi pregunta para aclarar. –

+0

Ok, no entendí bien. Mire, quizás, las variables de sesión http://www.thomasfrank.se/sessionvars.html –

+0

Lo de sessionvars parece perfecto, aunque tendré que trabajar en las consideraciones de seguridad. Por lo tanto, quiero aceptar su comentario en lugar de su respuesta :-) En su lugar, aceptaré su respuesta. Gracias por tu ayuda. –

10

usted podría utilizar localStorage objeto de JavaScript. El ebook Dive Into HTML5 tiene un excelente capítulo sobre él. Creo que el capítulo también menciona algunas posibles soluciones alternativas para los navegadores que no son compatibles con localStorage.

Cuestiones relacionadas