Sto pensando di creare un'app Web che utilizzi MySQL come database, Java / Grails come back-end e JavaScript / VueJS come front-end e poi comunicheranno usando solo le API JSON RESTful (in questo modo posso avere app frontend in esecuzione su qualsiasi piattaforma, tutte con lo stesso backend). Quello che sto pensando è che ogni azione (che richiede l'accesso a db) dovrà essere autenticata, quindi penso che quando un utente si collega (con successo) creerò un "token di autenticazione" sul back-end, crittografarlo e inviarlo al front-end in cui viene archiviato nella memoria del browser, quindi da quel momento in poi ogni volta che un utente fa qualcosa che il token viene utilizzato per l'autenticazione. Ma ciò di cui non sono sicuro su come implementare è l'autenticazione per la registrazione dell'utente (e qualsiasi altra azione che non richieda l'accesso dell'utente, ad esempio l'invio di una query Contattaci). Ad esempio, potrei avere una variabile "REST_PASSWORD" nel JavaScript front-end che viene utilizzato per queste azioni non registrate, ma sostanzialmente inutile perché chiunque può accedere al codice JavaScript e prendere la password.
Quindi la mia domanda è qual è il modo migliore per implementare la registrazione degli utenti attraverso un'API JSON REST in modo che la mia applicazione non venga sfruttata dai bot / utenti malintenzionati? È stato suggerito di implementare CAPTCHA sul frontend e, mentre darò sicuramente un'occhiata, mi chiedo se sarà sufficiente sicurezza e / o se ne avrò bisogno di più?