¿Cuál es la forma más segura de guardar la autenticación de usuario: las cookies o la variable de sesión?

0

Estoy desarrollando una aplicación web que es básicamente para todos nuestros empleados. Ahora mismo tenemos 3500 empleados y todos ellos accederán a esta aplicación web.

Todos ellos usarán información realmente confidencial. En este momento estoy pensando en cómo se autenticarán todos.

Pero, ¿cuál es la mejor manera de guardar el inicio de sesión: con la variable de sesión o con cookies?

¿O tal vez ambos?

Ahora mismo estoy trabajando con ASP.NET y las variables de sesión se guardan en una cadena base64 (quizás esto sea un poco más seguro pero no lo sé).     

pregunta NathanWay 08.04.2015 - 21:56
fuente

3 respuestas

4

Según la forma en que está estructurada su pregunta, parece que podría estar confundido acerca de qué son las cookies de autenticación y las variables de sesión y para qué se deben usar. También parece que está planeando rodar su propia funcionalidad de autenticación / autorización.

Una cosa que ofrece ASP.NET es que manejará muchos de los detalles de autenticación / autorización para usted. Cuando se usa correctamente, es muy seguro.

Recomendaría leer este artículo para comprenderlo mejor de cómo funciona la autenticación / autorización y cuáles son sus opciones con ASP.NET.

Recomendaría leer cómo funciona el estado de sesión de ASP.NET (incluidas las variables de sesión) leyendo este artículo .

¡La mejor de las suertes!

    
respondido por el Abe Miessler 08.04.2015 - 23:58
fuente
3

Podría considerar el uso de JWT (JSON Web Token) que se está volviendo bastante popular. Básicamente, cómo funciona es que el usuario inicie sesión en su sistema y su aplicación genere JWT y lo envíe con la respuesta. JWT contiene campos estándar como "sujeto", "audiencia", etc. (también puede definir atributos personalizados), también tiene una fecha de caducidad y está firmada criptográficamente. Su usuario incluye el JWT con cada solicitud en el encabezado HTTP, directamente en la URL o en la cookie. Su servidor valida la firma y los análisis atribuidos para establecer los derechos de acceso.

Las principales ventajas son que es en proceso de estandarización en IETF en este momento y actualmente es utilizado por un número considerable de proveedores de la nube para asegurar el acceso a la API. Otra ventaja es que si alguna vez necesita otorgar acceso a su aplicación a un tercero, sería fácil de integrar, ya que existen bibliotecas que admiten JWT para casi cualquier plataforma, incluida .Net (consulte el primer enlace). O si alguna vez decide exponer su API para clientes móviles, funcionará de manera inmediata. Su aplicación puede ser sin estado de esta manera (buena para el equilibrio de carga) pero es probable que necesite usar cookies para el acceso al navegador web.

    
respondido por el dtoubelis 09.04.2015 - 00:41
fuente
-1

la base64 que codifica el texto sin formato es mala, cualquiera puede decodificar base64. Use el cifrado antes de codificar en base64 sus variables o cualquier otra cadena de texto sin formato.

Las sesiones son mucho más seguras que las cookies.

    
respondido por el InfoSec 08.04.2015 - 22:20
fuente

Lea otras preguntas en las etiquetas