Cookie di sessione di Firefox

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 al termine della sessione di navigazione (generalmente quando l’istanza del browser si chiude).

IE, Opera, Safari e Chrome supportano questo comportamento.

Tuttavia firefox (3.0.9 ultima versione appropriata) sembra non seguire questa regola, da quello che posso dire che non scade i cookie quando il browser è chiuso, o quando l’utente si disconnette o riavvia il sistema operativo.

Quindi, perché firefox si riferisce a questi come cookie di sessione, quando durano per un tempo indefinito?

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

Questo è apparentemente dal design. Dai un’occhiata a questo bug Bugzilla: https://bugzilla.mozilla.org/show_bug.cgi?id=443354

Firefox ha una funzionalità in cui si chiude Firefox e si offre di salvare tutte le tabs, quindi si ripristina il browser e tali tabs tornano indietro. Questo è chiamato ripristino della sessione. Quello che non ho realizzato è 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, ti ritrovi nel punto in cui ti trovavi, ma è un po ‘sconcertante per gli sviluppatori di siti Web utilizzati per eliminare i cookie di sessione. Ho alcuni vecchi cookie di sessione di mesi fa impostati da siti che ho sempre aperto nelle tabs.

Per testare questo, chiudere tutte le tabs nel browser, quindi chiudere il browser e riavviarlo. In questo caso, i cookie di sessione per il tuo sito dovrebbero essere chiari. Altrimenti dovresti distriggersre il ripristino della sessione.

Due idee:

  1. Hai un problema con il tuo gestore delle sessioni (quello incluso in FF3 o uno incluso in un’estensione, come tabmixplus)
  2. Usa Firebug + FireCookie ( https://addons.mozilla.org/en-US/firefox/addon/6683 ) per eseguire il debug!

Questo dovrebbe funzionare. Ero uno dei tester dei moduli dei cookie, e non penso ci sia alcun motivo di progettazione che si comporterebbe diversamente (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?

Questo è un po ‘un problema in ambienti utente condivisi. Se imposto un cookie di autenticazione che è impostato per scadere alla fine della sessione. Questo persisterà in Firefox dopo che il browser è stato chiuso e un altro utente avvierà Firefox. I cookie sono impostati con una data di scadenza per un motivo!

Sono sconcertato che Mozilla abbia lasciato questo come è per diversi anni.

OK … quindi esco da FF e spengo il PC. Il giorno dopo FF inizia e apre l’ultima serie di pagine (bella funzionalità a portata di mano), ma ripristina le sessioni e sono riaccodato ai siti che non dispongono della 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 sì, ma sessioni con cookie ini impostati su ‘0’ no.

Non capisco perché questo non è contrassegnato come un buco di sicurezza. Certo, posso fare qualche controllo aggiuntivo sul lato server, per vedere se un accesso dovrebbe 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.

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 mantenga il cookie su più “sessioni” (ad esempio, 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 dei 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 è quello di non impostare alcun valore di Scadenza (ad esempio un cookie di sessione). Se un browser non onora quella semantica, allora non sta rispettando la risposta del server.

In sostanza, l’agente utente sta decidendo di ignorare la richiesta del server e agire come se fosse stato impostato un valore di Scadenza.

Beh, mi sta sconcertando. Il mio sistema è impostato in modo che gli utenti possano colpire EXIT con cui distruggo 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.

L’ho provato con Google Chrome, IE 9, e funziona perfettamente. Ma Firefox è riluttante ad eliminare i cookie “sessione” (come riportato da Firebug).

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