Cookie cancellati in modo sicuro

4

Esiste una sorta di procedura ufficialmente definita (ad esempio da IETF) su come disinserire correttamente un cookie?

Ho sempre considerato la procedura migliore per disattivare tutti i cookie di sessione al logout per un'applicazione web. Lo faccio impostando il cookie "session" su un valore vuoto, con una data di scadenza nel passato e il flag sicuro impostato su false. Il mio pensiero è che "Se per qualche trucco ci fosse un cookie di sessione non sicuro, sarà anche disattivato".

Questa è una buona pratica?

    
posta DarthCaniac 22.03.2016 - 22:23
fonte

2 risposte

5

La difficoltà qui è che il cliente è responsabile della cancellazione del valore del cookie (indipendentemente dal possesso di un token di sessione o meno) - dal lato server, tutto ciò che si può fare è sperare che il cookie sia cancellato come richiesto. Questo non è veramente definibile - per definizione, i client non conformi non obbediscono, quindi manterrebbe il token della sessione intorno.

La soluzione, quindi, è di disinserire il valore del cookie con qualunque mezzo tu possa considerare valido (impostarlo per scadere in passato, svuotarlo, impostare un cookie di sessione fittizio, o qualsiasi altra cosa), e espira il token di sessione sul lato server.

Sei tu a controllare se il server tratta il cookie di sessione fornito come token valido, quindi dovresti assicurarti che non lo faccia - a quel punto, non importa ciò che fa il client, e puoi anche prelevarlo su "non valido" "i token di sessione vengono forniti come un'indicazione che qualcosa è andato storto: l'utente ha modificato il valore della sessione, il client non è stato eliminato in modo corretto o si è tentato di utilizzare una sessione precedente (forse il computer era ibernato con il sito apri e si è verificato il timeout della sessione).

    
risposta data 22.03.2016 - 22:59
fonte
1

Ho trovato una risposta alla prima parte della mia domanda che ho pensato di condividere qui.

RFC 6265 (Pagina 8) afferma che:

Finally, to remove a cookie, the server returns a Set-Cookie header with an expiration date in the past. The server will be successful in removing the cookie only if the Path and the Domain attribute in the Set-Cookie header match the values used when the cookie was created.

    
risposta data 30.03.2016 - 17:37
fonte

Leggi altre domande sui tag