Qual è il modo più sicuro per inviare dati utente dal client al server? [chiuso]

-2

So che probabilmente ci sono molte risposte a questa domanda, ma finora non sono riuscito a trovare una risposta dettagliata semplice.

Sull'app Android ci sono due pulsanti, accedi con Facebook e accedi con Google. Quando l'utente fa clic su uno di questi pulsanti, verrà eseguita una richiesta a fb / g + api dal client utilizzando il proprio sdk fornito da fb / g + e restituisce un uniqueid, nome, email, profilo-img-url e genere.

Successivamente, utilizzo l'e-mail e l'ID dell'utente per verificare se esiste un account con e-mail e ID oppure no. Questo è fatto con uno script php che fa una dichiarazione SQL preparata. se l'utente esiste allora lo script restituirà i dati dell'utente, se l'utente non esiste, invierò un'altra richiesta ad un altro script php per registrare l'utente con tutti i dettagli che ho ricevuto dall'autenticazione.

Temo che ci siano molti problemi di sicurezza con questo. So che molte app hanno avuto lo stesso problema. Io uso un ID di 10 cifre e l'email degli utenti per accedere all'utente, puoi spiegare se esiste un modo in cui un utente malintenzionato che conosce l'e-mail possa accedere a un altro account utente. L'utente malintenzionato potrebbe anche tentare più volte di eseguire l'accesso a una richiesta di base di JSON con l'e-mail e l'ID come parametri. Potrei salvaguardare l'app che impedirà agli utenti di provare più volte, ma penso che la possibilità per un attaccante di provare quanto vuole sia un rischio, qualsiasi suggerimento per rendere più difficile per un utente malintenzionato provare più volte in un breve periodo di tempo?

    
posta edwinj 17.02.2016 - 15:08
fonte

1 risposta

1

Una delle principali vulnerabilità è un attacco MiTM (Man in The Middle) in cui chiunque tenta di annusare i pacchetti tra il telefono dell'utente e il computer che ospita il database, sarà in grado di ottenere le credenziali di accesso e le informazioni sull'host del database ( come il suo IP). Quindi hai gli attacchi SQL injection e XSS se non hai preso alcuna precauzione al riguardo. Inizia utilizzando POST anziché GET per inviare i dati dallo script php al tuo db. Inoltre, è possibile stabilire una connessione crittografata tra dispositivo mobile devive e server utilizzando SSL o crittografare i dati sul dispositivo mobile con una chiave pubblica prima di inviarli al server per la decrittografia. Per quanto riguarda gli attacchi sql injection, assicurati di controllare i dati che un utente dà sul modulo php prima di inviarli (usa "mysql_real_escape_string ()" a tale scopo). Infine, ma non meno importante, dai un'occhiata a questo: link o qualcosa di simile per scoprire come affrontare gli attacchi XSS.

    
risposta data 17.02.2016 - 15:42
fonte

Leggi altre domande sui tag