Cookies de sesión de Firefox

105

En términos generales, cuando se les da una cookie que no tiene período de caducidad, los navegadores modernos considerarán esta cookie como una 'cookie de sesión', eliminarán la cookie al final de la sesión de navegación (generalmente cuando se cierra la instancia del navegador).

IE, Opera, Safari y Chrome admiten este comportamiento.

Sin embargo, Firefox (versión 3.0.9 más reciente) parece no seguir esta regla, por lo que puedo decir que no expira las cookies cuando se cierra el navegador o cuando el usuario cierra la sesión o reinicia el sistema operativo.

Entonces, ¿por qué Firefox se refiere a estas como cookies de sesión, cuando aparentemente duran indefinidamente?

¿Alguien sabe cómo gestiona Firefox la caducidad de las cookies de sesión?

meandmycode
fuente
1
No creo que esto haya sido realmente respondido. Yo también estoy viendo esto.
bhollis
Gracias BRH por su investigación, de hecho vi su respuesta y tenía la intención de verificar su investigación antes de marcar su respuesta, ¡lo olvidé por completo! disculpas
meandmycode

Respuestas:

116

Esto aparentemente es por diseño. Mira este error de Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=443354

Firefox tiene una función en la que cierras Firefox y ofrece guardar todas tus pestañas, y luego restauras el navegador y esas pestañas vuelven. Eso se llama restauración de sesión. ¡Lo que no me di cuenta es que también restaurará todas las cookies de sesión para esas páginas! Lo trata como si nunca hubiera cerrado el navegador.

Esto tiene sentido en el sentido de que si su navegador falla, regresa directamente a donde estaba, pero es un poco desconcertante para los desarrolladores web acostumbrados a borrar las cookies de sesión. Tengo algunas cookies de sesión antiguas de hace meses que fueron configuradas por sitios que siempre tengo abiertas en pestañas.

Para probar esto, cierre todas las pestañas de su navegador, luego cierre el navegador y reinícielo. Creo que las cookies de sesión de su sitio deberían borrarse en ese caso. De lo contrario, tendría que desactivar la restauración de la sesión.

bhollis
fuente
1
Encuentro este comportamiento bastante cuestionable, gracias por su investigación. Si se selecciona "Guardar y salir" o "Restaurar pestañas y ventanas", al cerrar el navegador, todas las cookies de sesión permanecen intactas. La única forma en que el "usuario" puede deshacerse de ellos es primero cerrar la pestaña (s) y luego cerrar el navegador.
marca el
¿Alguna vez encontró una solución? Realmente no quiero que Firefox descubra sesiones antiguas ya que necesito que el ID de sesión en mi aplicación sea único.
ArjanP
Lo siento, no conozco ninguna solución. Desde la perspectiva de su aplicación, su navegador nunca se cerró.
bhollis
6
He notado algunas de las implicaciones de esta decisión (IMO desacertada): mrclay.org/index.php/2010/05/02/…
Steve Clay
Hoy también me mordió este comportamiento. Pensé que había algo mal con mi aplicación. Luego probé Chrome y otros navegadores, luego descubrí que Firefox es el culpable.
Dingle
3

Esto debería funcionar. Solía ​​ser uno de los probadores de módulos de cookies, y no creo que haya ninguna razón de diseño por la que esto se comporte de manera diferente (aunque si falla, las cookies de sesión podrían estar diseñadas para vivir cuando reinicie ...)

¿Está viendo las cookies en el menú "Preferencias"> pestaña "Privacidad"> botón "Mostrar cookies ..."?

Además, ¿has probado un nuevo perfil?

benc
fuente
Muy extraño, estoy relativamente feliz si esto es solo un error con los dos sistemas en los que lo probé ... He visto las cookies y sobreviven a cualquier cosa ... y están siendo clasificadas como cookies de sesión por Firefox ... La única opción que cambio en Firefox es activar y desactivar javascript. Mis complementos instalados son Firebug y la barra de herramientas del desarrollador web. Ah, bienvenidos de todos modos.
meandmycode
También hay una variedad de preferencias de módulos de cookies, pero no recuerdo que ninguno de ellos tenga este tipo de funcionalidad. FF3 cambió de un archivo de texto a una base de datos de cookies, tal vez su base de datos se haya comportado mal.
benc
2

No estoy de acuerdo conmigo y con mi código anterior.

La especificación HTTP https://www.ietf.org/rfc/rfc6265.txt habla sobre lo que un cliente debe hacer con los encabezados Set-Cookie con Expires:

Si el servidor desea que el agente de usuario conserve la cookie durante varias "sesiones" (por ejemplo, el agente de usuario se reinicia), el servidor puede especificar una fecha de vencimiento en el atributo Expires. Tenga en cuenta que el agente de usuario puede eliminar la cookie antes de la fecha de vencimiento si el almacén de cookies del agente de usuario excede su cuota o si el usuario elimina manualmente la cookie del servidor.

La extensión lógica de esto es que la ÚNICA forma en que el servidor tiene que exigir que el navegador no mantenga una cookie al salir es establecer un valor sin expiración (es decir, una cookie de sesión). Si un navegador no respeta esa semántica, entonces no respeta la respuesta del servidor.

Básicamente, el agente de usuario decide ignorar la solicitud del servidor y actuar como si se hubiera establecido un valor de Expires.

Neill Robbins
fuente
1

Esto es un poco preocupante en entornos de usuarios compartidos. Si configuro una cookie de autenticación que está configurada para caducar al final de la sesión. Esto persistirá en Firefox después de que el navegador se haya cerrado y otro usuario inicie Firefox. Las cookies tienen una fecha de caducidad por una razón.

Jason
fuente
1
Bueno, para ser justos con respecto a "Las cookies se establecen con una fecha de caducidad por una razón"; en este escenario, no se establece una fecha de caducidad, por lo que depende del navegador decidir cuánto tiempo dura esa cookie.
meandmycode
0

Estoy desconcertado de que Mozilla haya dejado esto como está durante varios años.

OK ... así que salgo de FF y apago la PC. Al día siguiente, FF se inicia y abre el último conjunto de páginas (característica útil y agradable) PERO restaura las sesiones y vuelvo a iniciar sesión en sitios que no tienen la función "guardar mi configuración". Lo sé porque son sitios que construí. Independientemente de lo que haga con la configuración de php ini, las sesiones se restauran.

Absolutamente no deben restaurarse. Páginas sí, pero sesiones con cookie ini configuradas en '0' no.

No entiendo por qué esto no está marcado como un agujero de seguridad. Claro que puedo hacer algunas comprobaciones adicionales en el lado del servidor, para ver si se debe permitir un inicio de sesión, según el tiempo desde el último inicio de sesión, pero no debería ser necesario.

Una sesión NO debe persistir. FF está manipulando la configuración de caducidad de las cookies.

anoldermark
fuente
-1

Bueno, me desconcierta. Mi sistema está configurado para que los usuarios puedan presionar EXIT y destruyo todas las cookies de sesión. Pero si un usuario cierra el navegador sin elegir realmente Salir, me gustaría que se borrasen las cookies de sesión.

De hecho, lo probé con Google Chrome, IE 9 y funciona bien. Pero Firefox es reacio a eliminar estas cookies de "sesión" (según lo informado por Firebug).

OKAY. Esto es lo que hice. Elegí Salir del menú principal de FireFox y, a partir de entonces, lo hice bien como esperaba (no sé por qué).

jdisla
fuente