Autore Topic: consiglio login e SharedPreferences  (Letto 864 volte)

Offline Cocacola

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
consiglio login e SharedPreferences
« il: 14 Febbraio 2013, 11:12:20 CET »
0
Ciao a tutti,
questo è il mio primo post, mi sono appena avvicinato al mondo android! :-)
Volevo sapere quanto sono sicuri i dati nel SharedPreferences, nel senso, è sicuro salvare i login e password li?? O mi conviene fare in altri modi??
A me i dati mi servono anche dentro la app perchè farò delle chiamate in POST e ogni volta devo dare login e password per verificare se si è autorizzati.
Cosa ne pensate??
Grazie

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:consiglio login e SharedPreferences
« Risposta #1 il: 14 Febbraio 2013, 17:27:53 CET »
0
Innanzitutto è opportuno sapere che le shared preferences sono memorizzate in  un file xml nella cartella /data/data/<package>/shared_prefs/, e i dati sono memorizzati come testo.

Se ti chiedi se sono crittografati o criptati, la risposta è no. Il testo è un plain-text.
Da linee guida ufficiali, le shared preferences non nascono per essere usate per le password.
Detto questo chiaramente lo puoi fare, e penso che sia una strada molto utilizzata.

Esistono meccanismi alternativi, che però hanno una complessità decisamente superiore, e parere personale non semplicissimi da capire e soprattutto implementare per chi sta iniziando a programmare.

Innanzitutto esiste l'AccountManager che ti permette di creare degli account sul dispositivo (per intenderci come quello di Google, Facebook, Twitter.....).
Non è semplice da spiegare in due parole, e la cosa migliore è leggere la documentazione.
E' bene sottolineare che da solo l'AccountManager non realizza nessuna forma di crittografia o di protezione, è solo un ponte con il quale si possono implementare meccanismi di autenticazione semplici come la password, o più sofisticati, per esempio basati su token (che chiaramente richiedono una parte server che li genera).

La mia opinione è che nessuna password che viene salvata sul dispositivo è sicura.
E' chiaro che esiste password e password....










Offline Cocacola

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
Re:consiglio login e SharedPreferences
« Risposta #2 il: 14 Febbraio 2013, 17:42:48 CET »
0
Grazie, sei stato chiarissimo.
Allora nella SharedPreferences ho visto che c'è MODE_PRIVATE, che praticamente non rende utilizzabili questi dati dalle altre app, quindi in teoria a quel file xml ho accesso solo io padrone del cell... Giusto?? Dimmi se sbaglio.. penso che alla fine sia un pò come i cookie salvati nel browser.
Questa password non è di un conto bancario :) quindi probabilmente per adesso seguirò la strada delle SharedPreferences!!

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:consiglio login e SharedPreferences
« Risposta #3 il: 14 Febbraio 2013, 19:38:41 CET »
0
MODE_PRIVATE è il default delle Shared Preferences.
Questo parametro rende inaccessibili i valori alle altre app in teoria.... qui si innestano altri discorsi (cellulari rooted, non rooted....)
E' un file su un disco con sopra un sistema operativo, e come tale c'è il modo per arrivare a leggerlo o copiarlo.