Come accedere ai database da un dispositivo mobile in modo sicuro?

0

Ho svolto alcune ricerche sull'accesso a un DB da dispositivi mobili. Ci sono tanti modi diversi per farlo. Ci sono anche diversi modi per renderlo sicuro. Qual è un buon modo per accedere a un database da un dispositivo mobile in modo sicuro?

Considerando anche il mio caso specifico, in cui ho un servizio WCF esistente che fa tutto il necessario per l'app, vorrei riutilizzarlo. Ho lavorato per utilizzare le chiamate jsonp al servizio e sviluppare app per iOS, Android e Windows Phone. Le chiamate sono protette da HTTPS e implementerei alcuni criteri di autenticazione per le chiamate. Ma quanto sarebbe sicuro tutto questo?

Ho alcuni dati davvero sensibili di cui preoccuparsi. Sto usando HTML5 e JS per lo sviluppo di app per mantenerlo uniforme e meno difficile da gestire per tutte le piattaforme.

Come posso accedere al database e mantenere i miei dati al sicuro?

    
posta Ron 06.03.2014 - 16:56
fonte

2 risposte

5

Non dovresti accedere a nessun database esterno da un dispositivo mobile.

Dal punto di vista della rete, la connessione a un database dovrebbe essere effettuata solo all'interno di una rete locale dove la connessione è affidabile e veloce, il che è qualcosa che non si ottiene con le connessioni mobili.

Dal punto di vista del design, esporre direttamente un database è semplicemente una cattiva idea, non solo è troppo basso, sarà anche un incubo quando gli utenti utilizzano versioni diverse della tua app e cercano di fare cose diverse per il tuo Banca dati. Al contrario, dovresti fornire servizi web RESTful con un'apposita astrazione API adeguata per la tua app mobile.

    
risposta data 07.03.2014 - 00:59
fonte
3

È meglio non pensare di rendere l'applicazione "accesso a un database" - la logica dell'applicazione client dovrebbe essere separata dalle specifiche dell'implementazione del database. Il cliente deve semplicemente effettuare richieste a un server & lascia che il server gestisca i dettagli della conversazione con il database per te.

Se facciamo un passo indietro e ignoriamo che il client è un dispositivo mobile, ciò che si desidera è fondamentalmente l'architettura software standard a 3 livelli. Questo è che hai un cliente relativamente "stupido" che comunica con un livello intermedio che gestisce la logica e l'ampli business; parla al database per te. Questo semplifica il tuo client & ti permette di concentrarti sulla sicurezza nel livello intermedio - anche se le tue comunicazioni vengono compromesse, un messaggio da un client non cancellerà mai tutti gli utenti se non hai il metodo "elimina tutti gli utenti" nel tuo livello intermedio.

Sembra che tu stia bene, con i servizi WCF per gestire le comunicazioni client / server. Assicurati di pensare alle richieste del tuo cliente al server in termini di ciò che i risultati dovrebbero essere & non i passaggi specifici per ottenere quei risultati e avrai un sistema abbastanza pulito.

Non so molto di WCF ma probabilmente ci sono un sacco di articoli su come proteggerlo correttamente, se la funzionalità non è già integrata. Assicurati solo di non fidarti mai del client per fare il giusto cosa e assicurati sempre che il tuo server si assicuri che le richieste siano valide prima di eseguirle e dovresti essere d'oro.

    
risposta data 06.05.2014 - 07:15
fonte

Leggi altre domande sui tag