Nella mia app (e nel sito Web) un utente accede con la propria e-mail per eseguire azioni come fare un commento sul sito Web sotto il loro nome. Ovviamente è importante che le persone malintenzionate non possano fingere di essere questo utente e inviare commenti a loro nome.
Ho letto che qualsiasi azione che modifica lo stato non dovrebbe mai essere eseguita da una richiesta GET. Che cosa impedisce a qualcuno di creare una richiesta POST utilizzando l'indirizzo email dell'utente autenticato? È possibile che qualcuno comunichi al mio sito Web di eseguire una richiesta POST e spoofare gli input?
Nel mio database sto pensando di memorizzare qualche tipo di token per convalidare un utente (chiamiamo il token authentication_token ). Ad esempio, ogni volta che un utente effettua l'accesso, authentication_token viene aggiornato nel database per l'utente e rinviato per essere archiviato in una SESSIONE sul sito Web o nell'app. Ora ogni volta che viene fatta una richiesta (per esempio facendo un commento), la SESSIONE memorizzata viene controllata nel database per assicurarsi che corrisponda prima di procedere al commento.
- L'utente preme il pulsante "Invia commento" sul sito web o nell'app
- La richiesta POST viene inviata con gli input user_email , comment e authentication_token
- SELECT authentication_token FROM Users_Table WHERE email = user_email
- Passa al passaggio 5 solo se il authentication_token richiamato authentication_token è stato inviato nella richiesta POST.
- Crea il commento.
È un modo sicuro per convalidare un'azione? Il trasferimento di authentication_token è sicuro su https? Grazie per l'aiuto.