Salvataggio delle password sul dispositivo locale

3

Quindi nella mia app (iOS), devi registrarti per utilizzare il servizio (un servizio di ristorazione). Ma per cambiare i dettagli sul tuo account (nome utente, password ed e-mail), devi reinserire la tua password. Tranne che se l'utente si è disconnesso, questa è l'unica volta in cui hai bisogno della tua password per utilizzare l'app. Quindi mi stavo chiedendo, dato che l'utente praticamente non usa mai la sua password, e probabilmente lo dimenticherebbero l'unica volta in cui potrebbero averne bisogno, è ok se memorizzo la password sul loro dispositivo locale (in NSUserDefaults )?

Poiché la loro password sarebbe solo sul loro dispositivo locale, non sembra un rischio per la sicurezza. Se l'app è stata compromessa, l'unica password che potrebbero ottenere sarebbe la loro.

Inoltre, stavo pianificando di archiviarlo come una stringa (nessuna crittografia). Farebbe la differenza se l'ho cancellato o crittografato prima di salvare la password ai loro valori predefiniti?

Grazie in anticipo.

    
posta Andrew 21.07.2012 - 21:58
fonte

3 risposte

2

Utilizza KeyChain per memorizzare le password. Ho imparato come farlo usando questo link e il KeyChainItemWrapper la classe può essere trovata qui

Non penso che sia necessario crittografarlo se usi un KeyChain. Inoltre, NSUserDefaults non è consigliato per la memorizzazione delle password.

    
risposta data 07.08.2012 - 13:00
fonte
10

Gli utenti tendono a rimanere con 1 o 2 password. Se l'app è stata compromessa da un'altra app, avere la password dell'utente dal tuo servizio potrebbe consentire l'accesso ad altre risorse più sensibili oltre al tuo servizio di ristorazione. Un metodo migliore potrebbe essere quello di memorizzare una sorta di token di autenticazione a lungo termine sul telefono rispetto alla password stessa. Tale token potrebbe essere legato alle informazioni dell'account dell'utente sul server, consentendo così all'utente di inserire la propria password solo una volta mantenendo la propria password sicura.

    
risposta data 21.07.2012 - 23:05
fonte
2

A seconda delle circostanze, puoi utilizzare il Portachiavi .

Ci sono alcuni vantaggi nell'usare il portachiavi e cose come UICKeyChainStore e STKeychain lo rendono molto semplice da implementare.

Le funzioni di cui tenere conto sono:

  • Le altre tue app possono accedere alle stesse informazioni se scegli rendilo .
  • Le informazioni persistono dopo che l'app è stata rimossa, quindi può essere utilizzata da altre app o se l'utente lo reinstalla.
risposta data 22.07.2012 - 02:06
fonte

Leggi altre domande sui tag