quali sono le vulnerabilità ???
Can any one pls help me understand this code
È una pagina di "reimpostazione della password". Se l'e-mail esiste nel database, allora dice che non può resettare la tua password (mi azzarderei a indovinare che il sistema di reimpostazione della password è stato recentemente abusato).
Se non esiste, dice che non è possibile ripristinare la password (con un motivo).
Qualsiasi vulnerabilità ancora esistente sarebbe connessa al fatto che la pagina ricalcasse indietro qualsiasi "email" sia inviata alla pagina stessa (non c'è alcun controllo sul fatto che è un indirizzo email valido), e che lo stesso è usato per un'operazione presumibilmente SQL diretta a scoprire se l'e-mail è nel database o no.
A seconda di come viene eseguita quest'ultima operazione, quale accesso è concesso al database, se lo schema è noto e altri fattori, tutte le informazioni potrebbero essere trapelate dal database. Probabilmente, sempre a seconda del back-end del database, alcune istruzioni potenzialmente dannose potrebbero essere inviate al database ed essere eseguite.
In generale, uno schema di reimpostazione della password dovrebbe essere qualcosa del tipo:
check the request is valid
check the email is valid. If not, say "The email you sent is not valid".
check how many emails match in the database.
say "If the address is in the database, an email will be sent shortly.
Check your spam folder yadda yadda. If you still don't receive an
email, that means the email was not in our database: contact us."
close browser connection.
(wait a random amount from 0 to 5 seconds)
check that the "sent email" flag is less than 3 and the "last sent"
is more than 24 hours ago; we don't want to spam third parties.
if the email matches number was equal to 1, send the email and increment
the "sent email" flag by 1, also set "last sent" to the current datetime.
Sostanzialmente chi richiede la reimpostazione della password:
Il codice sembra prendere il valore di "Email" dalla richiesta e aggiunto direttamente all'interno dei tag, quando non viene trovato alcun account.
Leggi altre domande sui tag web web-application