Ho un mio progetto scolastico che riguarda un'app e un sito web che utilizzano lo stesso database. L'app funge da strumento di amministrazione per il sito web. Poiché è realizzato in C # e non è sicuro come PHP, ho deciso di far interagire l'app con il database attraverso il sito web:
Sul sito web, c'è un file php utilizzato per stabilire un collegamento tra l'app e il database. Questo è l'algoritmo che ho configurato per renderlo il più sicuro possibile:
- L'utente inserisce una password nell'app, la invia al file php come un parametro (/get.php?pwd=1234)
- Il sito Web invia un token (chiamalo T0) all'app
- La prossima volta che l'app vuole inviare una query al sito web, invia l'md5 di T0 (chiamalo T1), il sito web dalla sua parte calcola l'md5 di T0 e lo confronta T1
- La prossima query deve essere inviata usando l'md5 di T1 (T2) e il il sito Web la confronterà con md5 di T1
Il bello di questo metodo è che nel caso di un man-in-the-middle (supponendo che non sappia che usiamo l'md5 del token), leggendo la password o T0, non servirà alcuno scopo.
Come ulteriore misura di sicurezza, ogni token utilizzato viene salvato in un database separato contenente la posizione esatta dell'utente, l'ip e l'operazione eseguita con esso.
Dato che non sono un esperto di sicurezza, volevo sapere quanto sia difficile infiltrarsi in questo sistema. Grazie