Questo è uno scenario del mondo reale. Sto cercando di fornire tutti i dettagli necessari.
Riepilogo
Un utente cambia il proprio IP ad ogni richiesta utilizzando un browser senza cookie. Come posso proteggere le loro richieste di accesso?
Impostazioni
- API restful e thin client Web JS
- Token CSRF GET Endpoint che genera un token csrf che è legato all'IP di richiesta
- Accedi POST Endpoint utilizzando i parametri email , password e csrf_token
- È stato impostato Access-Control-Allow-Origin , quindi le risposte possono essere recuperate solo dal sito Web di un utente non malintenzionato. Tuttavia, la richiesta di pre-volo è non emessa come da specifiche.
- C'è un tempo di attesa della richiesta per l'indirizzo IP
- Utente che utilizza il browser che è senza cookie e non ha una memoria locale
- Utente che modifica il proprio indirizzo IP ogni richiesta, ad es. usando Tor o Onavo
problema
Poiché l'indirizzo IP cambia per ogni richiesta, il token csrf non è mai valido e l'utente non può accedere.
Potremmo smettere di associare il token csrf con l'IP. Tuttavia, permetteremo a un utente malintenzionato di generare il proprio token csrf e inviarlo all'utente (che sconfigge l'intero scopo). Cioè l'utente malintenzionato potrebbe ora limitare il limite di un utente in background e impedire che accedano quando visitano il nostro sito.
Domanda
L'unico riferimento che ho trovato suggerito di usare i cookie (cosa che non possiamo fare).
Che cosa dovremmo fare meglio qui per consentire all'utente di accedere evitando comunque csrf?