Autore Topic: SQLite sostituzione DB on the fly  (Letto 255 volte)

Offline wlf

  • Utente normale
  • ***
  • Post: 319
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
SQLite sostituzione DB on the fly
« il: 01 Settembre 2015, 15:45:52 CEST »
0
Salve ragazzi, mi è sorto un dubbio ragionando sulla sicurezza del DB.
Sarebbe possibile durante l'esecuzione di un App sostituire il file del DB di SQLite?

Praticamente faccio partire la mia MainActivity che controlla il DB SQLite nella onCreate, poi faccio partire una SecondActivity e la parcheggio. Avendo un dispositivo rootato con un file manager vado a sostituire il file del DB con un Database rimaneggiato; una volta fatto faccio la resume dell'App che ho parcheggiato prima. A questo punto la mia App si accorgerebbe che il DB è stato sostituito? Mi darà errore oppure per l'App il nuovo DB funziona tranquillamente?

Oppure più tranquillamente, sempre con uno smartphone rootato, posso parcheggiare l'App ed avere accesso allo stesso DB della mia App con un'altra App (SQLite Manager, SQLite Editor, etc) manomettendone i dati?

Sostanzialmente, anche mettendo un checksum su ogni riga del DB è necessario ricontrollare tutto il DB ad ogni operazione che faccio o è sufficiente controllarlo all'apertura dell'App?

Offline LonelyWolf

  • Utente junior
  • **
  • Post: 148
  • Respect: +12
    • Mostra profilo
    • Traversate dei laghi
  • Dispositivo Android:
    GT-I9505, ALE-L21
  • Sistema operativo:
    Windows 7 32/64
Re:SQLite sostituzione DB on the fly
« Risposta #1 il: 01 Settembre 2015, 17:07:45 CEST »
0
La sostituzione al volo del db non genera crash dell'app a meno che non sia in uso; nella mia app faccio tranquillamente il restore del db (tramite la stessa app) semplicemente chiudendo la connessione e copiando il file.

Se con un telefono rootato modifichi i dati del db  tramite un'altra app la tua App non si accorgerà mai della modifica; anche mettendo il checksum ricontrollare tutto il db è inutile, modifichi il dato e correggi il checksum, quindi non viene rilevato.
Se la mia risposta ti è utile, per favore un thanks!

Offline wlf

  • Utente normale
  • ***
  • Post: 319
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Xperia
Re:SQLite sostituzione DB on the fly
« Risposta #2 il: 01 Settembre 2015, 18:43:17 CEST »
0
Beh, se il checksum lo inserisci su ogni riga del DB con un algoritmo di criptazione un pelo complesso non è così elementare effettuare una modifica on-the-fly. Ma comunque è necessario rileggere tutti i record per accorgersi se uno è stato modificato.

Offline LonelyWolf

  • Utente junior
  • **
  • Post: 148
  • Respect: +12
    • Mostra profilo
    • Traversate dei laghi
  • Dispositivo Android:
    GT-I9505, ALE-L21
  • Sistema operativo:
    Windows 7 32/64
Re:SQLite sostituzione DB on the fly
« Risposta #3 il: 02 Settembre 2015, 08:26:13 CEST »
0
A quel punto metti direttamente il dato criptato.
Se la mia risposta ti è utile, per favore un thanks!