Trabajo con sitios confidenciales que manejan información financiera, mi código protege más de cuatro mil millones de libras de activos.
Todos nuestros sitios tienen un botón de cierre de sesión y, además, utilizan cookies de sesión HttpOnly, Secure, para mantener la sesión de un usuario. Aunque esperamos que los usuarios hagan clic en el botón "Cerrar sesión", también anticipamos que algunos usuarios no lo harán; como resultado, confiamos en las cookies de sesión que se eliminarán cuando el usuario cierre el navegador.
Recientemente, me llamó la atención que los navegadores no siempre eliminan las cookies de sesión cuando las cierra. Chrome, específicamente, tiene una función de "Reanudar donde lo dejé" que persiste en las cookies de sesión una vez que se cierra el navegador, y lo que es más, esta opción está seleccionada de forma predeterminada. FireFox tiene una característica similar.
¿Qué mitigaciones adicionales ha implementado debido a esta característica? Consideramos algunos:
-
OnBeforeUnload / Unload / PageHide controlador para eliminar las cookies cuando la ventana está cerrada. Lamentablemente, no puede eliminar las cookies de HttpOnly de esta manera.
-
Cookies de sesión muy cortas que se actualizan continuamente (cada 30 segundos aproximadamente) a través de un script. Esto tiene problemas porque algunos navegadores (especialmente en teléfonos y tabletas) detienen la ejecución de Javascript cuando una pestaña está inactiva, por lo que esto tendría el efecto de eliminar a los usuarios cuando cambian de pestaña o cambian de ventana.
-
Los controladores AJAX para mantener un latido con el servidor. Nuevamente, esto no funcionará cuando la pestaña esté inactiva.
¿Es necesaria alguna mitigación adicional? ¿O es el comprador, tenga cuidado si no se desconecta explícitamente? Curioso lo que otros profesionales de TI han hecho al respecto.
Nota: También utilizamos una cookie persistente con una ventana deslizante de diez minutos, y expiramos la sesión en el lado del servidor en diez minutos. El objetivo de este ejercicio es mitigar la actividad maliciosa que se produce dentro de la ventana de 10 minutos, por ejemplo. Si alguien te está observando cuidadosamente en un cibercafé y se hace cargo de tu estación de trabajo si no sales correctamente.