Come implementare la funzionalità di reimpostazione della password senza diventare vulnerabile alla perdita di riferimenti tra domini?

2

In genere ho implementato la funzionalità di reimpostazione della password inviando un collegamento che includeva qualcosa come questo:

http://example.com/pwreset?id=userId&resetToken=superSecretResetToken

Nella mia pagina pwreset , in genere richiedo alcune risorse da terze parti. Da quanto ho capito, dal momento che ho informazioni sensibili nella mia URL a questo punto, potrebbe essere rivelato a queste terze parti nell'intestazione referer al momento della richiesta.

Mentre mi fido di queste parti, preferirei che non vedessero URL che avrebbero dato loro la possibilità di reimpostare le password o di avere queste informazioni registrate sul loro fine e disponibili nel caso il loro sistema fosse compromesso.

Alcune domande:

  • È possibile implementare una pagina di reimpostazione della password che includa risorse di terze parti senza rivelare il referer ?
  • In quale altro luogo, oltre alla terza parte, queste informazioni saranno visibili (se disponibili)?
posta Abe Miessler 06.10.2014 - 21:14
fonte

2 risposte

4

Sì. Questo potrebbe risolvere il tuo problema:

  1. mysyte.com/?token=xxx imposta un cookie e reindirizza a mysite.com/changepwd senza restituire alcun markup
  2. mysite.com/changepwd riconosce l'utente dal cookie e può richiedere in sicurezza le risorse di terze parti senza perdere il token attraverso le intestazioni dei referrer.

Per rispondere alla seconda domanda: se la risorsa è su http, qualsiasi nodo di rete tra te e la terza parte potrebbe vedere il token. Se è https, allora è solo la terza parte a ricevere il token.

    
risposta data 06.10.2014 - 22:06
fonte
2

Rendi il token monouso: lo espira quando la pagina viene richiesta per la prima volta, quindi non è più di alcuna utilità per nessuno dopo quel punto in cui si verificano perdite.

Puoi anche rispondere alla richiesta iniziale con un reindirizzamento a un URL neutro che non ti preoccupa di essere trapelato (avendo impostato un cookie / sessione per ricordare l'autenticazione). Tuttavia questo lascia comunque la cronologia del browser, i registri server / proxy e le estensioni lato client come possibili fonti di perdita.

    
risposta data 06.10.2014 - 22:06
fonte

Leggi altre domande sui tag