¿Puedo usar de forma segura un parámetro de URL cifrada para el ID de sesión?

3

Estoy planeando enviar el ID de sesión de un usuario como un parámetro de URL que será cifrado AES. No creo que mi aplicación tenga problemas para compartir enlaces. ¿Es esta idea factible? ¿Es seguro?

    
pregunta Roshan 10.05.2013 - 19:59
fuente

3 respuestas

3

Si su ID de sesión es verdaderamente aleatoria, no hay seguridad adicional en el cifrado AES. Sin embargo, si no es aleatorio, recomendaría encarecidamente que no lo haga, por razones similares a por qué nadie en su sano uso tokens de ID de sesión predecibles.

Además, si no está utilizando SSL, su tráfico puede ser detectado. Esto significa que, sin importar cuánto cifres el token ... aún es claramente visible. (Bueno, su tráfico puede ser detectado con SSL, pero es un poco más complicado)

    
respondido por el Sébastien Renauld 10.05.2013 - 20:12
fuente
3

Es una mala idea.

El cifrado del identificador de sesión no tiene un impacto real en la seguridad de su aplicación. Si el tráfico se envía en texto sin formato (sin SSL ), cualquiera puede leer ese ID de sesión cifrado y luego usarlo para personificar el usuario legítimo.

Digamos que mi ID de sesión es 12345 . Cada vez que quiero ir a tu casa, me preguntas acerca de mi ID de sesión, voy a gritar desde detrás de la puerta y alguien podría escucharla. Para resolver el problema, ciframos el ID de sesión, por lo que se convierte en OF&HN7907fynNYH . Eso no cambia nada, alguien aún lo escuchará y podrá repetirlo.

En cuanto a la otra parte de su pregunta, acerca de poner el ID de sesión en la URL. Creo que es una mala idea porque la URL se puede usar y almacenar en muchos otros lugares; en los registros de proxy, se pueden marcar como favoritos o almacenar en informes de errores. Este tema ha sido discutido antes aquí .

    
respondido por el Adi 10.05.2013 - 20:53
fuente
2

¿Es factible? Sí. Es un patrón estándar para sesiones sin cookies y fue un patrón de rigor para la administración de sesiones en la aplicación JSP durante varios años.

¿Es una buena idea? No, por un par de razones.

  1. Una de las principales vulnerabilidades de un sitio que tiene un concepto de administración de sesión es el secuestro de sesión, donde el identificador de sesión es detectado y robado, como mencionó Sébastien. La URL es la ubicación vulnerable más que podría elegirse para este identificador. Es visible en el navegador, en el cable (si no se usa SSL) se puede marcar y compartir fácilmente.

  2. Puede impedir la usabilidad. Esto no es un problema de seguridad, pero si el parámetro está incrustado en la URL, como solían ser los identificadores de JSP, puede evitar compartir y marcar legítimamente, y provocar la frustración del usuario cuando intentan volver a una página marcada una vez que la sesión haya expirado. , solo para que la aplicación les diga que la URL no es válida y no tienen idea de cómo volver a la página.

respondido por el Xander 10.05.2013 - 20:54
fuente

Lea otras preguntas en las etiquetas