Accesso al database SQL dall'app Android Java. Come posso archiviare i dettagli del database SQL in modo che siano sicuri?

1

Quindi sto sviluppando un'applicazione Java che sarà gratuita e preferibilmente non richiederà un processo di registrazione. Non riesco a pensare a un'idea per archiviare il registro nei dettagli in modo sicuro.

Ho pensato di salare e hashing della password ma significa che non potrò recuperare la password per usarla per il database. Ho anche pensato di usare la crittografia, ma ciò significherebbe che avrei memorizzato la chiave di crittografia nell'app che non sembra sicura.

Quali sono le migliori pratiche per questo problema? I dati non consistono in nessun dato personale, ma sarebbe bello sapere come proteggere il database.

    
posta Conor.Berr 15.11.2017 - 20:16
fonte

1 risposta

1

Dato che presumo che il tuo database sia accessibile a Internet, utilizza sicuramente una connessione crittografata tra la tua app e il database. MySQL ha documentazione su questo qui .

Un approccio è quello di avvolgere il database con un servizio web. Ciò consente di memorizzare la password del database nel servizio Web, anziché nell'app. Questo ti dà anche più potere nel decidere quali query vengono eseguite sul database.

Un altro approccio consiste nel generare dinamicamente un utente nel database per l'app quando l'app è installata. Ciò ti consentirà di assicurarti che le credenziali del database dell'utente siano uniche, in modo che qualsiasi azione eseguita sul database possa essere tracciata su una singola installazione dell'app.

Tuttavia, questo mi porta a un po 'di tangente:

Considera il controllo degli accessi basato sui ruoli per la tua app.

Se la tua app legge solo i dati dal database e se sei preoccupato per l'integrità dei dati nel tuo database, considera la possibilità di creare due ruoli utente nel tuo database. Un ruolo utente sarà in grado di creare, modificare o eliminare dati: questo utente è a tuo uso come amministratore dell'app. L'altro ruolo utente può solo leggere i dati: questo è il ruolo dell'utente che l'app utilizzerà per accedere al database.

MySQL ha le capacità per eseguire questo tipo di controllo degli accessi basato sui ruoli, anche se in modo scomodo - controlla Documentazione MySQL per saperne di più.

    
risposta data 16.11.2017 - 05:37
fonte

Leggi altre domande sui tag