credenziali di sessione sul client

0

Sto sviluppando un'applicazione basata su IE11 in esecuzione su un server web all'interno della nostra rete aziendale

L'applicazione effettua chiamate a un'API di terze parti che richiede i certificati client e il nome utente / password nell'URL. L'url usa SSL. Nell'applicazione sto usando ajax per inviare l'url. Tutto sembra funzionare. Mi viene richiesto un certificato e la verifica delle credenziali sembra funzionare.

La mia preoccupazione è la creazione di un modulo di accesso e la persistenza delle credenziali dell'utente se l'accesso ha esito positivo. L'unico modo per testare le credenziali è eseguire una query e verificare se la stringa di risultati restituita è contrassegnata come corretta. Per quanto posso dire, non vi è alcun meccanismo nell'API per restituire un token di sessione. Penso di dover mantenere il nome utente e la password nella sessione client se voglio effettuare chiamate URL in futuro nella sessione. Stavo pensando di usare gli oggetti sessionStorage ma sembra che questa potrebbe essere una cattiva idea.

Non sono un esperto di sicurezza e apprezzerei qualsiasi indicazione sull'utilizzo di sessionStorage come approccio ragionevole. C'è un modo più sicuro per farlo considerando i limiti dell'API di terze parti?

    
posta gtmclean 20.07.2016 - 23:51
fonte

2 risposte

0

Come Tom ha sottolineato, l'unico rischio evidente è che le credenziali persistono sul client quando si utilizza la memoria locale.

La tua descrizione dell'applicazione mi ha un po 'confuso. Presumo che tu voglia dire che questo sia effettivamente eseguito sul browser, sia servito da un server web locale, ma chiama un servizio Ajax su un sistema remoto. In tal caso, perché non archiviare le credenziali sulla sessione con il server locale?

In alternativa, invece di una memoria locale, l'utilizzo di un cookie di sessione (associato al server locale) per memorizzare le credenziali significherebbe che i dati sarebbero più difficili da leggere dopo che l'utente ha chiuso il browser, ma continuerebbero a conservare l'archiviazione per a volte.

Se non si tratta di un'applicazione a singola pagina (in cui è possibile mantenere semplicemente i dati in una variabile javascript, le uniche opzioni che posso immaginare per l'archiviazione effimera che sopravvivono alle transizioni di pagina sono

  • the window.name
  • esecuzione dell'applicazione in un frame mantenendo i dati in javascript in un frame non di aggiornamento nella stessa finestra

Si noti che questi non hanno necessariamente bisogno di contenere il testo in chiaro delle credenziali ma potrebbero memorizzare una chiave generata in modo casuale utilizzata per codificare / decrittografare i dati memorizzati in un luogo meno sicuro.

    
risposta data 21.07.2016 - 13:23
fonte
0

Alla fine della giornata, se il computer è di proprietà di un singolo utente E si trova all'interno di una rete protetta, non dovrebbe essere troppo terribile memorizzarlo come testo normale. Ovviamente, potrebbero sorgere problemi se l'utente lascia il computer incustodito, ma dal momento che l'API che stai usando non restituisce le chiavi di sessione (che è davvero strano ...) non esiste una soluzione migliore.

La sicurezza aggiuntiva che è possibile implementare è la protezione dall'XSS, quindi le credenziali non vengono rubate dal malware e assicurandosi che l'archiviazione della sessione venga correttamente cancellata dopo un determinato periodo di tempo.

    
risposta data 21.07.2016 - 10:15
fonte

Leggi altre domande sui tag