Hay dos problemas aquí. Primero es la diferencia entre las cookies y la sesión. A menos que esté utilizando sesiones sin cookies (como identificadores únicos en la URL), la sesión es solo una cookie con una caducidad muy corta. Puede configurar fácilmente una aplicación para compartir la sesión en varios servidores mediante el uso de un servidor de estado (ScaleOut, Velocity, SQL Server)
Eso, por supuesto, supone que está utilizando la cookie del usuario para almacenar sólo un identificador único, y la vinculación que volver a todos los datos verdaderos en el servidor, probablemente en una base de datos. Sin embargo:
Almacenar datos confidenciales en la cookie de un usuario, incluso si está encriptada, no es realmente que es seguro, porque tiene que ser descifrable, lo que significa que es vulnerable. Cada vez que elige usar encriptación bidireccional en su aplicación, está asumiendo una carga de criptografía mucho más pesada para mantener el mismo nivel de seguridad. Si no tiene una considerable experiencia criptográfica a su disposición, probablemente sea mejor tomar la ruta segura y simplemente no hacerlo.
Así que en resumen, el uso integrado en sesión o hágalo usted mismo, de cualquier manera asegúrese de que la única pieza de información que se envía al cliente es una identificación imposible de adivinar que se ata de nuevo a los datos almacenados en su extremo.
Remembering a user with a cookie:
Asignar ... una identificación temporal asociado a ese usuario, como un GUID.Dado que los GUID son astronómicamente únicos y prácticamente a prueba de colisiones, también son prácticamente imposibles de adivinar o predecir desde fuera del sistema.
La ventaja de rodar su propia sesión basada en cookies/"recuérdame" funcionalidad es lo que da más control sobre cuánto tiempo se conserva la información, distribuida, etc. Por otra parte, representa más trabajo , algunos de los cuales están re-implementando funcionalidades que vienen de fábrica con la sesión de ASP.NET. Por lo general, recomiendo usar lo que ya existe, a menos que pueda articular claramente algún requisito empresarial que lo elimine como una opción.
Hola Rex, gracias por su apoyo y comentarios. ¿Hay alguna mejor práctica para implementar sesiones estatales? – Geo
Elegir el algoritmo de cifrado correcto hace que sea extremadamente difícil piratear el cifrado. Es más probable que alguien intente usar la cookie de forma involuntaria para violar el sistema, pero esa amenaza existe con CUALQUIER cookie, incluida la cookie de autenticación de asp.net. –
@Geo seguro, ver las adiciones a mi respuesta –