Invio di dati dal client Android al database

3

Ho creato un'app per Android che invia dati a un servizio web. In questo momento l'utente invia i risultati del test (id test, nome test, tempo di test e ID utente). Il problema è che invio i dati dal client al servizio web in JSON; è possibile accedere al servizio Web nel browser. Tuttavia, un utente non autorizzato potrebbe utilizzare il suo browser per chiamare il metodo webservice per l'inserimento del punteggio. Come posso risolvere questo problema? Devo lasciare che solo il client Android invii i dati al servizio web.

    
posta Layior 19.12.2014 - 09:53
fonte

2 risposte

2

In generale, questo non può essere fatto. Se l'utente ha accesso all'app, può eseguirne il reverse engineering e emulare in modo inequivocabile tutto ciò che fa.

Ciò che puoi fare è mettere ostacoli sul loro cammino. Basta trasmettere un hash salato insieme ai dati per fermare il 99% dei potenziali aggressori; se sei disposto a fare uno sforzo maggiore, l'uso della crittografia a chiave pubblica per crittografare e firmare il messaggio trasmesso fermerà quasi tutti.

Questo non fermerà né rallenterà in modo significativo un aggressore professionista, ma se il tuo modello di minaccia principale è "studente laureando in storia dell'arte" o "utente occasionale di Facebook", è più che adeguato.

    
risposta data 18.12.2015 - 10:24
fonte
-3

Chiama il metodo sendPostRequest(String username, String pass) con i parametri. È possibile chiamare questo metodo dal thread dell'interfaccia utente, la richiesta verrà inviata da un thread diverso (AsyncTask è incorporato).

    
risposta data 04.07.2015 - 10:38
fonte

Leggi altre domande sui tag