2013-09-23 11 views
7

Sto pianificando di eseguire un accesso restful in un sito crittografato non SSL archiviando il nome utente/password immesso dall'utente nella variabile javascript.Come archiviare la password in angularjs in modo sicuro

Ogni volta che l'utente fa una richiesta, la mia app richiede prima un token dal server, quindi lo ha combinato con $ scope.password, hash quindi inviato al server per la convalida. Se la convalida è corretta, la richiesta continuerà, altrimenti verrà interrotta.

Inoltre, ogni volta che viene eseguita la convalida, il server crea un nuovo token, indipendentemente dal fatto che sia valido o meno.

Secondo la mia conoscenza, sarebbe sicuro se utilizzo le funzioni immediate, ma visto che userò angularjs, non penso sia possibile, quindi come faccio a garantire che il nome utente/password memorizzati in la memoria non è hackerabile?

Grazie.

+0

Mantenere la password non elaborata sul lato client è ** mai ** sicuro. Il tuo problema sembra che tu stia usando la password come seme per l'hashing. Non puoi semplicemente chiedere al server un seme "casuale" (cioè univoco per utente) e archiviarlo sul lato client? – freakish

risposta

2

Non è possibile impedire che qualcuno legga il nome utente e la password dalla memoria, ma è possibile dedicare uno sforzo a ciò che viene inviato al server.

Si dovrebbe provare ad hash la password e il nome utente quando li inviano al server. Usa un sale che è unico per la sessione degli utenti, quindi è più imprevedibile e richiede una registrazione completa dell'intero traffico.

Ciò non comporterà una sicurezza assoluta, ma alzerà la barra perché qualcun altro possa leggere tutto.

P.S .: Consiglio vivamente di utilizzare SSL.

1

Penso che sia necessario definire cosa si significa "in modo sicuro". In particolare, definisci esattamente a cosa stai cercando di difendersi e perché non stai proteggendo contro i comuni vettori di attacco.

Se si sta semplicemente cercando di proteggere il dispositivo fisico dalle letture della memoria, allora si è sfortunati perché NIENTE può farlo. Sì, ci sono modi per renderlo più difficile, ma alla fine, se hanno un accesso fisico al dispositivo, nulla di ciò che puoi fare preverrà la perdita.

Se stai parlando di attacchi di tipo medio o simili, ignorando lo strumento migliore nel tuo kit (certificati SSL) che hai già perso.

Gli unici siti che funzionano con la memorizzazione nella cache e la reinvio costante dell'utente/pw sono quelli costruiti da coloro che non hanno idea di cosa stanno facendo perché è una pratica molto negativa.

Problemi correlati