Cookie di sessione di Firefox


105

In generale, quando viene fornito un cookie che non ha un periodo di scadenza, i browser moderni considereranno questo cookie come un "cookie di sessione", rimuoveranno il cookie alla fine della sessione di navigazione (generalmente quando l'istanza del browser si chiude).

IE, Opera, Safari e Chrome supportano tutti questo comportamento.

Tuttavia firefox (3.0.9 ultima versione corretta) sembra non seguire questa regola, da quello che posso dire non fa scadere i cookie quando il browser viene chiuso, o quando l'utente si disconnette o riavvia il sistema operativo.

Allora, perché Firefox si riferisce a questi come cookie di sessione, quando durano a tempo indefinito?

Qualcuno sa come Firefox gestisce la scadenza dei cookie di sessione?


1
Non credo che questo abbia effettivamente avuto risposta. Lo vedo anche io.
bhollis

Grazie BRH per la tua ricerca, in realtà ho visto la tua risposta e volevo controllare la tua ricerca prima di contrassegnare la tua risposta, invece, completamente dimenticato! scuse
meandmycode

Risposte:


116

Questo è apparentemente in base alla progettazione. Controlla questo bug di Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=443354

Firefox ha una funzione in cui chiudi Firefox e ti offre di salvare tutte le tue schede, quindi ripristini il browser e quelle schede tornano. Si chiama ripristino della sessione. Quello di cui non mi ero reso conto è che ripristinerà anche tutti i cookie di sessione per quelle pagine! Lo tratta come se non avessi mai chiuso il browser.

Questo ha senso nel senso che se il tuo browser si arresta in modo anomalo torni subito al punto in cui ti trovavi, ma è un po 'sconcertante per gli sviluppatori web abituati a cancellare i cookie di sessione. Ho dei vecchi cookie di sessione di mesi fa che sono stati impostati da siti che ho sempre aperto in schede.

Per provarlo, chiudi tutte le schede nel browser, quindi chiudi il browser e riavvialo. Penso che i cookie di sessione per il tuo sito dovrebbero essere cancellati in questo caso. Altrimenti dovresti disattivare il ripristino della sessione.


1
Trovo questo comportamento abbastanza discutibile, grazie per la tua ricerca. Se è selezionato "Salva ed esci" o "Ripristina schede e finestre", alla chiusura del browser, tutti i cookie di sessione rimangono intatti. L'unico modo per "l'utente" di sbarazzarsene è chiudere prima le schede e quindi chiudere il browser.
segna il

Hai mai trovato una soluzione alternativa? Non voglio davvero che Firefox riesca a recuperare vecchie sessioni poiché ho bisogno che l'ID di sessione nella mia app sia univoco.
ArjanP

Mi spiace, non conosco una soluzione alternativa. Dal punto di vista della tua app, il browser non si chiude mai.
bhollis

6
Ho notato alcune delle implicazioni di questa decisione (IMO sconsiderata): mrclay.org/index.php/2010/05/02/…
Steve Clay

Anch'io oggi sono stato morso da questo comportamento. Pensavo ci fosse qualcosa di sbagliato nella mia app. Poi ho testato Chrome e altri browser, quindi ho capito che il colpevole è Firefox.
Dingle


3

Questo dovrebbe funzionare. Ero uno dei tester dei moduli dei cookie e non penso che ci sia alcun motivo di progettazione per cui questo si comporterebbe in modo diverso (anche se in caso di crash, i cookie di sessione potrebbero essere progettati per sopravvivere al riavvio ...)

Stai visualizzando i cookie nel menu "Preferenze"> scheda "Privacy"> pulsante "Mostra cookie ..."?

Inoltre, hai provato un nuovo profilo?


Molto strano, sono relativamente contento se questo è solo un bug con i due sistemi su cui l'ho testato .. Ho visto i cookie e sopravvivono a qualsiasi cosa .. e sono assolutamente classificati come cookie di sessione da Firefox .. il le uniche opzioni che cambio in Firefox è attivare e disattivare javascript .. i miei plugin installati sono firebug e la barra degli strumenti per sviluppatori web .. ah benvenuti comunque.
meandmycode

Ci sono anche una varietà di preferenze per i moduli dei cookie, ma non ricordo che nessuna abbia questo tipo di funzionalità. FF3 è passato da un file di testo a un database di cookie, forse il tuo database si è comportato male.
benc

2

Non sono d'accordo con meandmycode sopra.

La specifica HTTP https://www.ietf.org/rfc/rfc6265.txt parla di ciò che un client dovrebbe fare con le intestazioni Set-Cookie con Expires:

Se il server desidera che l'agente utente persista il cookie su più "sessioni" (ad esempio, il riavvio dell'agente utente), il server può specificare una data di scadenza nell'attributo Expires. Si noti che l'agente utente potrebbe eliminare il cookie prima della data di scadenza se l'archivio cookie dell'agente utente supera la sua quota o se l'utente elimina manualmente il cookie del server.

L'estensione logica di ciò è che l'UNICO modo in cui il server deve richiedere che il browser non mantenga un cookie all'uscita è di non impostare alcun valore di scadenza (cioè un cookie di sessione). Se un browser non rispetta quella semantica, non sta onorando la risposta del server.

Essenzialmente il programma utente sta decidendo di ignorare la richiesta del server e agire come se fosse stato impostato un valore Expires.


1

Questo è un po 'preoccupante negli ambienti utente condivisi. Se imposto un cookie di autenticazione che scade alla fine della sessione. Ciò persisterà in Firefox dopo che il browser è stato chiuso e un altro utente avvia Firefox. I cookie hanno una data di scadenza per un motivo!


1
Bene, per essere onesti riguardo al "I cookie sono impostati con una data di scadenza per un motivo" - in questo scenario, non stai impostando una data di scadenza, quindi spetta al browser decidere per quanto tempo quel cookie dura.
meandmycode

0

Sono sconcertato che Mozilla lo abbia lasciato così com'è per diversi anni.

OK .. quindi esco da FF e spengo il PC. Il giorno successivo FF si avvia e apre l'ultima serie di pagine (caratteristica utile e utile) MA ripristina le sessioni e io sono tornato su siti che non hanno la funzione "salva le mie impostazioni". Lo so perché sono siti che ho costruito. Qualunque cosa faccia con le impostazioni di php ini, le sessioni vengono ripristinate.

Non dovrebbero assolutamente essere ripristinati. Pagine si, ma sessioni con cookie ini impostato su "0" no.

Non capisco perché questo non sia contrassegnato come una falla di sicurezza. Certo, posso fare alcuni controlli aggiuntivi sul lato server, per vedere se un accesso deve essere consentito, in base al tempo dall'ultimo accesso, ma non dovrebbe essere necessario.

Una sessione NON dovrebbe persistere. FF sta manipolando le impostazioni di scadenza dei cookie.


-1

Beh, per me è sconcertante. Il mio sistema è impostato in modo che gli utenti possano premere EXIT, distruggendo tutti i cookie di sessione. Ma se un utente chiude il browser senza effettivamente scegliere di uscire, vorrei che i cookie di sessione fossero cancellati.

In realtà l'ho testato con Google Chrome, IE 9 e funziona bene. Ma Firefox è riluttante a uccidere i cookie di questa "sessione" (come riportato da Firebug).

OK. Questo è quello che ho fatto. Ho scelto Esci dal menu principale di FireFox e da quel momento in poi, ha funzionato bene come previsto (non so perché).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.