Qual è il modo più sicuro per salvare l'autenticazione dell'utente: cookie o variabile di sessione?

0

Sto sviluppando un'applicazione web che è fondamentalmente per tutti i nostri dipendenti. Al momento abbiamo 3500 dipendenti e tutti accederanno a questa applicazione web.

Tutti useranno informazioni veramente riservate. In questo momento sto pensando a come si autenticheranno tutti.

Ma qual è il modo migliore per salvare il login: con la variabile Session o con i cookie?

O forse entrambi?

In questo momento sto lavorando con ASP.NET e le variabili di sessione sono salvate in una stringa base64 (forse questo è un po 'più sicuro ma non lo so).

    
posta NathanWay 08.04.2015 - 21:56
fonte

3 risposte

4

In base al modo in cui è strutturata la tua domanda, sembra che tu possa essere confuso su quali cookie di autenticazione e variabili di sessione siano e per cosa dovrebbero essere utilizzati. Sembra anche che tu stia pianificando di implementare la tua personale funzionalità di autenticazione / autorizzazione.

Una cosa che ASP.NET offre è che gestirà molti dei dettagli di autenticazione / autorizzazione per te. Se usato correttamente questo è molto sicuro.

Consiglierei di dare questo articolo una lettura per capire meglio di come funzionano i worK di autenticazione / autorizzazione e quali sono le opzioni con ASP.NET.

Suggerirei di leggere il modo in cui lo stato della sessione ASP.NET (comprese le variabili di sessione) funziona leggendo questo articolo .

Buona fortuna!

    
risposta data 08.04.2015 - 23:58
fonte
3

Potresti considerare l'utilizzo di JWT (Token Web JSON) che sta diventando molto popolare. Essenzialmente, come funziona, il tuo utente accede al tuo sistema e la tua applicazione genera JWT e la invia con la risposta. JWT contiene campi standard come "oggetto", "pubblico" ecc. (Puoi anche definire attributi personalizzati), ha anche una data di scadenza ed è firmato crittograficamente. L'utente include la JWT con ogni richiesta nell'intestazione HTTP, direttamente nell'URL o nel cookie. Il tuo server convalida la firma e le analisi attribuite per stabilire i diritti di accesso.

I principali vantaggi sono che è sottoposto alla standardizzazione in IETF in questo momento ed è attualmente utilizzato da un numero considerevole di provider cloud per la protezione dell'accesso API. Un altro vantaggio è che se è necessario concedere l'accesso alla propria app a una terza parte, sarebbe facile da integrare in quanto esistono librerie che supportano JWT per quasi tutte le piattaforme, tra cui .Net (vedere il primo collegamento). O se decidi di esporre la tua API per i client mobili, funzionerà immediatamente. La tua applicazione può essere senza stato in questo modo (utile per il bilanciamento del carico), ma probabilmente dovrai utilizzare i cookie per l'accesso al browser web.

    
risposta data 09.04.2015 - 00:41
fonte
-1

la codifica base64 in chiaro è cattiva, chiunque può decodificare base64. Usa la crittografia prima che base64 codifichi le tue variabili o qualsiasi altra stringa di testo normale.

Le sessioni sono molto più sicure dei cookie.

    
risposta data 08.04.2015 - 22:20
fonte