Quindi sto cercando di creare e proteggere un'API REST mobile su un server esistente che esegue la nostra app Web. Non apriremo l'API al pubblico e scriveremo l'app client utilizzando PhoneGap / Javascript / HTML. Potremmo usare molto bene HTTP Basic ma volevo qualcosa di più avanzato e sicuro. Non voglio utilizzare la sicurezza AWA di Amazon o di OAuth perché sembra che siano principalmente per l'apertura della tua API al pubblico o a una terza parte.
Sono davvero nuovo alle API REST e alla sicurezza, ma dopo aver fatto qualche ricerca ho intenzione di usarlo implementazione come scritto da Google. Riassumo l'idea generale:
- L'utente invia le credenziali del server tramite un POST sicuro
- Se le credenziali corrispondono. Il server crea un token, lo salva nel database, quindi lo invia all'utente. Il token sarà basato sull'UID utente dell'utente e un timestamp.
- Il database memorizzerà l'ultima volta in cui l'utente ha cambiato la propria password e convaliderà solo le chiamate con i token che sono stati emessi dopo tale orario.
- L'utente quindi invia questo token nell'intestazione con ogni chiamata API
Quanto è sicura questa implementazione? Come posso interrompere gli attacchi di forza bruta sul mio metodo di autenticazione? Qualsiasi altro suggerimento o raccomandazione è apprezzato.