Genero oauth2 accesso e aggiornamento token e li memorizzo nel mio database. Genero questi token utilizzando UUID v4 e rimuovo i trattini. Ho cancellato i token dopo che sono scaduti, ma ora li memorizzo tutti perché ho pensato a qualcosa che potrebbe accadere.
Cosa succede se un utente malintenzionato memorizza localmente tutti i token di accesso che sono stati generati per lui e continua a utilizzare questi token di accesso ancora e ancora per l'autorizzazione. Poiché io, come amministratore del database, stavo cancellando i token generati, il DB non ha modo di sapere che il token è unico. Pertanto se l'algoritmo UUIDv4 genera un token di accesso per un utente diverso e si tratta di una collisione (stesso UUID di uno generato in precedenza) e l'utente malintenzionato ha trovato la collisione, potrebbe entrare nel servizio poiché ha i token che sono stati generati in precedenza.
La mia domanda è se dovessi preoccuparmi di questo e mantenere tutti i miei token in caso di collisione per verificare l'univocità o dovrei eliminare i token di accesso e aggiornamento dopo la scadenza e confidare che UUIDv4 abbia abbastanza entropia per impedirlo?
Sono anche preoccupato che se tengo tutti i token, inflazionerà il database poiché i token di accesso scadono ogni ora e vengono rigenerati la prossima volta che l'utente intraprende un'azione.
Qualsiasi aiuto è apprezzato!