Come proteggere le API dei token di aggiornamento?

2

Ho due API utilizzate in auth :

  1. api/auth/newtoken : convalida con successo l'utente (ovvero, il nome utente e la password controllano nel DB) e restituisce token (expirers in 3 giorni) e refreshToken .
  2. api/auth/updatetoken : quando il token è scaduto chiama questa API con refreshToken e ottieni il nuovo token .

Come posso proteggere l'API api/auth/updatetoken ? Tutte queste API sono per un'applicazione Android e sarà facile ottenere queste API una volta che avremo decompresso l'applicazione.

Quali sono alcuni approcci migliori per proteggere questa API?

    
posta iam batman 17.11.2017 - 05:44
fonte

1 risposta

2

Non c'è modo di "proteggere" l'API a meno che non controlli tutti i dispositivi che possono connettersi ad esso. Per un'API che consente l'utilizzo da parte di dispositivi di proprietà dell'utente che si collegano su Internet, allora devi presumere che chiunque possa inviarti qualcosa.

Hai due scelte qui -

  • Non scadono i token e scartano la chiamata uptatetoken.
  • updatetoken richiede un token valido esistente. Se è scaduto, newtoken deve essere chiamato di nuovo e l'utente deve autenticare di nuovo.

Personalmente, se non esiste un client browser Web (e nemmeno uno con uno solo, darei ai client del browser un token in scadenza) suggerirei il primo. Il token deve essere posizionato solo sul dispositivo client, memorizzato nel portachiavi del dispositivo, quindi deve essere protetto. Nel frattempo, se qualcuno lo ha intercettato, potrebbe semplicemente chiamare updatetoken per interromperlo.

    
risposta data 17.11.2017 - 10:07
fonte

Leggi altre domande sui tag