¿Cuáles son las ventajas y desventajas de usar cookies frente a sesiones?

Galletas
Pros : Último entre visitas, enviado con cada solicitud (conveniente), personalización del sitio web para el usuario.
Contras: almacenados en la máquina del usuario (seguridad), necesitan codificación defensiva ya que pueden eliminarse en cualquier momento, preocupaciones de privacidad ya que los sitios maliciosos pueden leer sus datos de cookies.

Sesión
Pros: guardado en el lado del servidor
Contras : guardado en el lado del servidor

¿Por qué ambos? Porque muchos desarrolladores abusan de la sesión. Almacenan toneladas de objetos en la memoria del servidor con un impacto grave en la escalabilidad y el rendimiento (rara vez veo a las personas limpiar las variables de sesión cuando no son necesarias, dejan que el servidor agote el tiempo de espera). Generalmente aconsejo a las personas que eviten la sesión cuando sea posible.

En ASP .NET MVC considere alternativas para pasar datos entre solicitudes como TempData siempre que sea posible.

Bueno, las cookies duran hasta una fecha de vencimiento determinada, lo que podría ser una cantidad de tiempo muy grande. Se puede usar para evitar que el usuario tenga que iniciar sesión repetidamente o identificarse de alguna otra manera.

El almacenamiento de la sesión caduca cuando el usuario cierra la pestaña del navegador … por lo que es inútil para cualquiera de esas cosas.

Quizás esté pensando en el “Almacenamiento local”, que es una tercera cosa.

Tanto la sesión como el almacenamiento local pueden almacenar entre 5 y 25Mbytes, dependiendo del navegador, y en cualquier formato. Las cookies solo pueden tener unos 4kbytes, lo que no es suficiente para almacenar cosas como imágenes y audio.

Las cookies también son útiles porque el servidor puede acceder a ellas directamente sin necesidad de código JavaScript para cargarlas … la sesión y el almacenamiento local requieren un código JavaScript para acceder a ellas, y si el servidor necesita verlas, debe haber algún software especial escrito para intercambiarlas. información.

Las cookies y el almacenamiento local también permiten que dos pestañas separadas que apuntan al mismo sitio web compartan datos persistentes. El “almacenamiento de sesión” obliga a cada pestaña a utilizar datos separados. Esto puede ser algo bueno o malo, dependiendo de lo que necesite.

La idea principal detrás de las cookies y las sesiones es la misma: hay algunos datos que deben recordarse en varias partes de un sitio web. Por ejemplo, un sitio web puede querer recordar qué usuario ha iniciado sesión (en la máquina que realiza las solicitudes) para personalizar la página o incluso controlar el acceso.

Para la mayoría de los casos simples donde las cookies contienen datos que solo mejoran la experiencia del usuario y son desechables, las cookies son preferibles, ya que se almacenan en el cliente en lugar del servidor, por lo que se escala bien. También se puede acceder a los datos de cookies desde JavaScript, mientras que los datos de la sesión son privados solo para el servidor. Las cookies también pueden persistir después de que el cliente cierra el navegador o se apaga, mientras que las sesiones generalmente no duran tanto para conservar los recursos.

Por otro lado, cuando se trata de datos confidenciales, desea utilizar sesiones en su lugar para evitar que los atacantes manipulen las cookies. Yahoo es un ejemplo infame para esto: su código de generación de cookies se vio comprometido y se accedió a cientos de miles de cuentas. Esto no implica que las cookies no se puedan usar para la autenticación, pero hay que tener mucho cuidado con los datos que ya no controlan. Muchos sitios web usan una combinación de ambos, cookies para almacenar la ID de sesión y todos los datos confidenciales de la sesión en el servidor, para recordar a los usuarios que iniciaron sesión.

Las cookies y las sesiones son solo herramientas como martillos y alicates. Debe evaluar la situación y determinar qué herramienta funciona en cada lugar.

SESSION es más seguro que las COOKIES. Porque SESSION destruirá sus datos inmediatamente y después de cerrar la aplicación. Pero COOKIE obtiene sus datos por un tiempo definido, ya sea que la aplicación esté abierta o cerrada.

Entonces, para garantizar la seguridad, la sesión es la función sugerida del desarrollo.
Gracias.

La principal diferencia entre las cookies y las sesiones es que las cookies se almacenan en el navegador del usuario y las sesiones se mantienen en el lado del servidor.

Para más detalles Sesiones vs. Cookies – ¿Cuál es la diferencia?

No puedo decir que haya ventajas y desventajas para usar cualquiera, ambas tecnologías tienen su uso en su aplicación web.

Tal vez la pregunta debería ser ¿qué usar cuándo?

En este caso, diré que use cookies si desea mantener sus vars almacenados para la próxima vez que el visitante regrese a su sitio web, y use session si solo desea mantenerlo para esta sesión actual.

Pero, si desea usar cookies para almacenar las variables de su aplicación web, debe recordar que las cookies están expuestas al usuario final y a cualquiera que detecte las solicitudes http del usuario. Entonces, si la seguridad es una preocupación, tendrá que codificar sus variables y sus valores.