it-swarm-eu.dev

Bypass reimpostazione password 'conferma'

Il processo di reimpostazione della password standard di Joomla prevede tre passaggi:

  1. Inserisci l'indirizzo email e richiedi il token di ripristino
  2. Completa la pagina "conferma" con nome utente e reimposta token (copiando il token dall'e-mail di reimpostazione della password ricevuta nella scheda del browser già aperta o seguendo il link di reimpostazione nell'e-mail che precompila il campo token ma richiede ancora il utente per inserire il proprio nome utente).
  3. Imposta e verifica la nuova password

Non vedo davvero il punto nel richiedere all'utente di inserire il proprio nome utente quando segue il link di ripristino fornito loro via e-mail - se hanno ricevuto il collegamento, hanno il controllo dell'indirizzo e-mail associato all'account utente. Chiedergli il loro nome utente è superfluo.

Concesso, al momento il collegamento non include l'indirizzo e-mail o il nome utente come parametro di query, ma supponendo che ciò avvenga, il passaggio 2 potrebbe essere ignorato del tutto, rendendo il processo più semplice. Si potrebbe obiettare che richiedere all'utente di fornire anche il proprio nome utente durante il processo di ripristino aumenta la sicurezza generale, ma se si utilizza l'indirizzo di posta elettronica come nome utente come nel mio caso, questo è arbitrario e fastidioso per gli utenti. Il processo di ripristino potrebbe essere eseguito senza esporre affatto il nome utente (includendo semplicemente l'indirizzo e-mail come parametro di query aggiuntivo), se ciò fosse comunque preoccupante.

Ho esaminato il codice Joomla per il modulo com_users e sfortunatamente, senza modificare il codice Joomla (che evito rigorosamente) non riesco a vedere un modo per manipolare il link di reimpostazione della password incluso nell'e-mail di reset, tramite un plug-in o in altro modo, prima viene inviato. Qualcuno può pensare a un modo pratico per raggiungere questo obiettivo?

5
John Rix

Ho appena trovato questa estensione, che mi consentirebbe di creare una sostituzione della classe del controller di registrazione com_users (al fine di aggiungere il parametro di query extra al link di ripristino), in alternativa all'altra soluzione proposta:

https://gruz.ml/en/extensions/mvcoverride.html

Solo sviluppatori esperti, attenzione. Potrebbe essere utile a qualcuno che viene da questa parte.

1
John Rix

Se hai solo bisogno di modificare il modulo com_users, sicuramente puoi semplicemente effettuare una sostituzione incollandolo nel tuo modello, ad es. in: template/html/com_users/registration/default.php?

Quindi si desidera impostare il campo username nascosto e impostare il valore su di esso, che è possibile caricare dal database dalla query con la parte unica del collegamento di ripristino.

(In alternativa, questo per Joomla 1 potrebbe contenere alcuni indizi, se sei uno sviluppatore: https://forum.joomla.org/viewtopic.php?t=50531 )

0
Nathan