¿Es posible la caducidad de la sesión para todas las aplicaciones web?

0

En caso de que alguien visite un sitio infectado, su seguridad, si le roban sus cookies, puede verse comprometida. ¿Hay alguna forma abstracta de caducar una sesión en el identificador de sesión robado para que la identificación sea prácticamente inútil?

Estoy tratando de protegerme en el lado del cliente. Una forma inteligente de expirar todas las sesiones sin tener que lidiar con visitar manualmente cada sitio.

¿Existe tal herramienta?

    
pregunta Mini Fridge 19.11.2015 - 03:11
fuente

4 respuestas

1

Si aún tiene el ID de sesión, puede cerrar sesión en las aplicaciones específicas. Una forma simple de invalidar todas las sesiones parece imposible. Puede intentar utilizar alguna heurística como el conocimiento de que una cookie con un SID configurado para el dominio example.com tendrá una página de cierre de sesión en example.com/logout o example.com/logout.html o algo similar. Usando esta heurística, puede visitar automáticamente todas estas páginas de cierre de sesión y esperar lo mejor. Tal vez alguien podría escribir un script de este tipo y tratar de encontrar una forma estandarizada de invalidar la sesión para la que tiene el SID.

No hay una forma estándar de invalidar una sesión en la que pueda confiar. Dado que cada ID de sesión sigue siendo válida mientras el servidor mantenga la sesión, no hay mucho que pueda hacer en el lado del cliente.

Puede confiar en la medida del lado del servidor que vincula la sesión a su dispositivo específico, como indica Steffen, pero no siempre es así. De cualquier manera no puedes hacer mucho.

Si puede especificar su escenario con más detalle, podría haber otras soluciones.

    
respondido por el Silver 24.11.2015 - 17:20
fuente
1

Parece que estás intentando evitar el secuestro de sesiones.

Si desea que expiren sus sesiones del lado del servidor, tendrá que darles un token (que es difícil de adivinar) y vincular un tiempo de caducidad a su registro de usuario en su base de datos. Dado que no puede garantizar que se elimine la cookie, deberá hacer que su navegador devuelva la cookie y luego calculará el tiempo de caducidad, ya sea que la cookie haya caducado o no.

También se recomienda actualizar el token después de que los privilegios de usuario hayan cambiado . Personalmente actualizo el token entre cada solicitud de página para evitar perder cualquier cosa.

Asegúrese de usar SSL siempre que transmita la cookie o podrá ser rastreada.

Hay más información en la Hoja de referencia de administración de sesión de Wiki de OWASP

    
respondido por el Wrathbelle 19.11.2015 - 18:25
fuente
1

Los navegadores tienen configuraciones integradas para eliminar todas las cookies o cookies particulares. Por lo tanto, es posible que un usuario pueda forzar la "caducidad inmediata" (es decir, la eliminación) de las cookies de esta manera. Lo que no es posible es que una visita a un sitio pueda forzar la eliminación o caducidad de las cookies que pertenecen a otros sitios.

EDITAR: después de la edición de la pregunta, parece que usted pregunta efectivamente cómo el servidor puede detectar que la cookie está mal utilizada (es decir, secuestro de sesión) e invalida la cookie. Algunos sitios hacen esto incorporando algún tipo de huella digital del navegador o la dirección IP del cliente en la cookie para que se detecte el uso de la cookie desde un navegador o IP diferente. Una vez que se detecta esto, la cookie puede simplemente eliminarse de la base de datos y por lo tanto se vuelve inválida. Para obtener más información, consulte OWASP sobre el secuestro de sesión .

    
respondido por el Steffen Ullrich 19.11.2015 - 06:59
fuente
1

Correcto, mi interpretación de esto es, y corríjalo si me equivoco: al usuario le robaron su computadora portátil y tienen muchas sesiones abiertas en los sitios web, tal vez porque marcaron la casilla Recordarme, o simplemente me gusta Tener muchas pestañas abiertas. El usuario ahora quiere asegurarse de que la persona que robó la computadora portátil no pueda usar sus sesiones, cerrando las sesiones remotas de alguna manera.

No pueden borrar las cookies porque no tienen el dispositivo en el que están almacenadas. Por lo tanto, están a merced de los desarrolladores de aplicaciones web. Hay varias posibilidades aquí:

  1. La aplicación proporciona un sistema de administración de sesiones, donde el usuario puede iniciar sesión, ver sesiones activas y cerrarlas si lo desea. En este caso, deben iniciar sesión, cerrar cualquier otra sesión y, para estar seguros, verificar si ocurrió alguna actividad no deseada en la cuenta. Un ejemplo de este tipo de sitio sería Facebook.
  2. La aplicación solo permite que una instancia de cada usuario inicie sesión en un momento dado. Esto es evitar los inicios de sesión concurrentes y, por lo general, es una buena ayuda si la aplicación involucra cualquier tipo de transacción, ya sea financiera o de otro tipo. En este caso, simplemente inicie sesión. Cualquier otra sesión activa finalizará. La mayoría de los bancos operan de esta manera, aunque también tienden a tener períodos de vencimiento de sesión cortos.
  3. Si la aplicación tiene una caducidad de sesión corta (digamos que se agarró la computadora portátil mientras realizaba una transacción bancaria en línea), solo es un problema si pueden usar la cuenta rápidamente. Si no pueden, la sesión terminará pronto de todos modos.
  4. Si la aplicación combina un token de sesión con un identificador de cliente, eso realmente no ayuda con esta circunstancia. En teoría, podría haber aplicaciones en las que pueda bloquear identificadores de clientes específicos, pero cada instancia de identificadores de clientes que he encontrado personalmente ha sido en conjunto con un sistema de administración de sesiones.
  5. Si ninguna de las opciones anteriores es verdadera, intente iniciar sesión en la aplicación y cambiar su contraseña. Los sistemas bien desarrollados expirarán cualquier sesión abierta en ese punto. Puede valer la pena probar esto abriendo dos sesiones propias (tal vez en distintos navegadores) y viendo si la sesión en el navegador que no usa para cambiar la contraseña se cierra cuando lo hace; la sesión robada debería hacer lo mismo.
  6. Si eso no funciona, no hay mucho que pueda hacer: la aplicación no admite la caducidad de la sesión de forma accesible para el usuario. Póngase en contacto con el propietario de la aplicación y pregúntele si puede borrar esa sesión de forma manual, pero no tengo muchas esperanzas.

En resumen, no hay una forma estándar que funcione para todos los sitios si no puede eliminar las cookies.

    
respondido por el Matthew 19.11.2015 - 23:55
fuente

Lea otras preguntas en las etiquetas