Come rispondo a un server spam che invalida i miei token? [duplicare]

2

La nostra applicazione web invia un token generato da un uso singolo, sotto forma di URL, ai clienti che dimenticano le loro password. Questo funziona tranne nel caso in cui il client sia seduto dietro un altro server che analizza la loro posta elettronica per URL e fa un GET sull'URL. Suppongo che il server stia controllando un carico utile dannoso.

Il client apre l'email e fa clic sul link, ma ovviamente non succede niente perché il token non è valido in quel punto.

Posso pensare ad alcuni modi per gestirlo:

• Invece di scadere immediatamente, consentire al token di essere valido per un certo periodo di tempo. Svantaggio: aggira l'intero punto di un token monouso poiché il token può essere utilizzato più volte. Inoltre, potrebbe non risolvere il problema se l'utente decide di aprire la sua email PAST la data di scadenza.

• Rendi il token buono per due usi. Svantaggio: simile a quanto sopra. Cosa succede se il controllo spam controlla "nuovamente l'URL ... Sigh.

Comunque, sto cercando un po 'di saggezza qui su come gestirlo. Se ci sono idee migliori di quelle che ho proposto mi piacerebbe sentirle.

EDIT: l'ho cross-postato su programmer.stackexchange . Andare lì per un po 'di discussione, ma la risposta che ho selezionato di seguito è fondamentalmente la stessa risposta.

    
posta Avery 04.10.2014 - 05:53
fonte

2 risposte

6

Il problema che stai incontrando è che GET dovrebbe essere sia "sicuro" che "idempotente": cioè, chiamarlo non dovrebbe apportare alcuna modifica al server e chiamarlo molte volte dovrebbe avere lo stesso effetto di chiamarlo una volta. Dal punto di vista degli standard, dovresti utilizzare POST per utilizzare il token.

Ovviamente, non puoi farlo da una email. Un'opzione è di avere il link nell'e-mail in realtà non fare nulla - è solo un collegamento a una pagina che fa il vero lavoro. Fare clic su un pulsante o causare in altro modo un POST da quella pagina sarebbe l'unica azione che fa scadere il token e fa tutto ciò che implica la gestione della password dimenticata.

    
risposta data 04.10.2014 - 06:35
fonte
0

Potresti provare a inviare non solo il token nell'e-mail, ma anche un cookie associato al token al browser. Alla verifica devono essere presentati sia token che cookie, quindi il token può essere utilizzato con successo solo con il browser che ha richiesto la reimpostazione della password.

    
risposta data 05.10.2014 - 10:40
fonte

Leggi altre domande sui tag