Dove vengono memorizzate le credenziali dell'utente quando si seleziona la password?

4

A condizione che un utente abbia scelto l'opzione remember me durante l'accesso l'ultima volta a un'applicazione Web, in che modo il server di applicazioni Web identifica l'utente la volta successiva in cui effettua l'accesso? Le credenziali sono memorizzate nei cookie sul lato client stesso? Ciò comporterebbe enormi problemi di sicurezza? Qualcuno per favore spiega

    
posta Anandu M Das 01.10.2014 - 13:43
fonte

3 risposte

7

Usualmente il browser dell'utente memorizza alcuni cookie con una stringa casuale che identifica l'utente sul server. Altre varianti più sicure di questo controllo controllano inoltre altri parametri come la versione del browser, il sistema operativo dell'utente e la posizione approssimativa.

In sostanza, se visiti una pagina web come Facebook con un cookie, ti viene autenticato solo con la stringa casuale nel cookie.

Come funziona: Se si effettua il login, il server genera questa stringa casuale e la memorizza nel suo database (insieme con altri parametri di identificazione). Inoltre invia questa stringa come cookie al browser dell'utente, dove viene archiviata e consegnata alla pagina ad ogni richiesta. Quindi, se c'è una richiesta con un valore casuale, il server controlla se corrisponde agli altri parametri di identificazione e, in caso affermativo, ti accetta come utente connesso.

    
risposta data 01.10.2014 - 13:52
fonte
2

Questa è una domanda abbastanza ampia in quanto ciò potrebbe essere (ed è stato) implementato in un gran numero di modi diversi. In genere comportano la memorizzazione di un cookie persistente nel browser, e qui ce ne sono alcuni. Il cookie potrebbe contenere:

  1. Un token di autenticazione. (Come descritto da Tokk nella sua risposta.) Con lo stato sul server (nel database, ad esempio) quando un utente ritorna, è possibile collegare nuovamente il token di autenticazione al proprio account utente.
  2. Un identificativo utente. Questo è un modello stateless che non richiede di tenere un record della sessione sul server. Finché l'utente continua a visitare con cookie contenenti un identificativo utente valido, vengono autenticati e non conta più se ci sono 10 secondi tra le richieste di pagina o 10 giorni.
  3. Credenziali. Questo è un modello statico / stateless ibrido che non è necessario mantenere un record della sessione, ma c'è un diverso tra un utente autenticato (che ha un cookie di sessione) e un utente memorizzato (che ha il cookie con le credenziali , ma non ancora cookie di sessione.) Questo può essere un enorme buco di sicurezza se le credenziali sono memorizzate nel cookie in chiaro, e sì, alcuni siti lo fanno (o lo hanno) fatto. Con una corretta crittografia, beh, non lo sceglierei, ma in questo caso non è un grosso rischio per la sicurezza. (C'è un po 'di rischio aggiunto nel fatto che l'applicazione sta facendo inutili elaborazioni extra delle credenziali, ma è un rischio relativamente basso.)

Quale è il grande rischio per la sicurezza in una funzione "Ricordami"? In primo luogo, si sta dando all'utente un cookie valido fino a un certo punto nel futuro, e la finestra per l'abuso se quel cookie viene sottratto in modo inappropriato è ora molto più grande. Quindi, con questo in mente, bisogna fare attenzione a proteggere questo cookie. Ad esempio, HTTPS deve essere utilizzato come prima linea di difesa e il cookie deve essere contrassegnato come secure . È utile se si dispone di un modello stateful per consentire all'utente di terminare forzatamente sessioni valide quando non ne hanno più bisogno, per limitare potenziali abusi.

Quindi tl; dr è: le tue credenziali possono o non possono essere memorizzate in un cookie. Se sono, e non sono correttamente crittografati, questo è un rischio significativo. Questo probabilmente non è il modo in cui una funzione "ricordami" è implementata su un determinato sito Web, ma in caso di dubbio, controlla i cookie e guarda.

    
risposta data 02.10.2014 - 12:37
fonte
-1

Le credenziali non vengono mai memorizzate né sul lato utente né sul lato server (se configurate secondo gli standard di sicurezza). Se si desidera mantenere attiva la sessione per un lungo periodo di tempo o assicurarsi di ricordare la password la prossima volta che si effettua l'accesso, il browser comunica con il server per generare un insieme casuale di dati che viene archiviato sotto forma di cookie .

Quando visiterai lo stesso sito la volta successiva, il cookie che è unico per il tuo accesso verrà utilizzato per autenticare automaticamente e accedere al tuo account.

    
risposta data 02.10.2014 - 11:32
fonte