Domanda

Sono curioso di come si ricorda il lavoro di Me e come funziona nella Primavera di sicurezza?

Capisco che server invia i cookie longevi al cliente. E poi client invia di nuovo biscotto e del server in grado di riconoscere il cliente perché c'è qualcosa di simile a hash-mappa su server con rapporti cookie --> session.

Non capisco come fa il server [applicazione server-side] riconoscere un client biscotto dopo server [Tomcat] è stato riavviato.

Come e dove Primavera di sicurezza salva mappa cookie-session prima dello spegnimento del server? E 'server specifico (vale a dire qualcosa di diverso è accaduto in Tomcat, Jetty, ecc)?

P.S. un altro problema correlato con la Primavera di sicurezza e riconversione: anche se io non spuntare RememberMe e il login, sto ancora riconosciuta dopo la ridistribuzione per circa 3 minuti. Si è fissabile?

È stato utile?

Soluzione

La documentazione Primavera di sicurezza discutere come funziona questo in realtà.

  

Questo approccio utilizza hashing per raggiungere un utile strategia di ricordare-me. In sostanza un cookie viene inviato al browser su di autenticazione interattivo successo, con il cookie che si compone come segue:

     

base64(username + ":" + expirationTime + ":" + md5Hex(username + ":" + expirationTime + ":" password + ":" + key))

     

...

     

In quanto tale la-mi ricordo di token è valido solo per il periodo specificato, ea condizione che il nome utente, la password e la chiave non cambia. In particolare, questo ha un potenziale problema di sicurezza in quanto un catturato ricordare-me gettone sarà utilizzabile da qualsiasi agente utente fino al momento in cui scade il token. Questo è lo stesso problema, come con l'autenticazione digest.

In sostanza il cookie contiene il nome utente, password, data di scadenza e una chiave (che si specifica), che sono tutti hash insieme. Quando il vostro browser invia i contenuti di questo cookie al server, Primavera di sicurezza:

  1. Recupera la password dal backend per il dato nome utente
  2. Calcola la md5Hex() del nome utente / password / etc dal database e lo confronta con il valore nel cookie
  3. Se corrispondono - si è connessi in! Se non è una corrispondenza, allora hai fornito un cookie forgiato o di uno dei / / chiave Username Password è cambiata.

Il presupposto di fondo è che la funzione di hash - la parte md5Hex() sopra - fornisce un modo per facilmente codificare qualche pezzo di dati in una direzione ancora è incredibilmente difficile e poco pratico per invertire (per recuperare la password dal testo md5Hex).

Altri suggerimenti

Dont' cookies di sessione confondere con Remember Me cookie.

biscotto

Session viene inviato dal server (ad esempio Tomcat) e utilizzato per associare richiesta in arrivo con la sessione.

Ricordati di me cookie viene inviato entro la primavera di sicurezza per autenticare il client nelle varie sessioni (ad esempio, dopo la scadenza della sessione originale o dopo il riavvio del server).

per autenticare un utente da Resta Cookie Primavera Security offre 2 strategie:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top