Come gestisco un server spam che invalida i miei token?

0

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 (cioè il server spam) 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.

    
posta Avery Chan 04.10.2014 - 06:01
fonte

2 risposte

6

Questi server anti-spam presumono che il metodo HTTP GET sia idempotente, il che significa che ogni volta che si utilizza quel metodo su un URL, si ottiene lo stesso risultato. Sfortunatamente per te, questo è anche il modo in cui quel metodo è specificato nello standard HTTP.

Un modo per ottenere token da utilizzare una sola volta è contare solo quando si riceve un post su quell'URL. Funzionerebbe così:

  • Invia l'URL con il token di utilizzo monouso al tuo cliente
  • Quando fanno clic sull'URL (o quando alcuni processi lo accedono con una richiesta GET), restituisci una pagina semplice con un modulo o un pulsante per reimpostare o modificare la loro password.
  • Quando l'utente preme il pulsante o invia il modulo, la pagina invia una richiesta POST all'URL della pagina (ovvero l'URL del token di utilizzo monouso). Ciò costituirebbe l'unico uso consentito per il token.
  • Dopo aver ricevuto il POST, puoi invalidare completamente l'URL (tutte le richieste ottengono una risposta 404) oppure puoi smettere di rispondere alle richieste POST, a tua discrezione.
risposta data 04.10.2014 - 08:15
fonte
0

Invece di inviare un URL, invia un URL e un codice di conferma che non fa parte dell'URL Puoi ancora rendere la combo valida per un solo uso e per un periodo di tempo limitato.

    
risposta data 05.10.2014 - 08:12
fonte

Leggi altre domande sui tag