Melhor prática para reiniciar as senhas de utilizador esquecidas
peça ao utilizador para introduzir o seu endereço de E-mail e uma nova senha de texto simples é enviada para o seu endereço de E-mail.
um link é enviado para o seu endereço de E-mail que tem um número UID na URL. Clicando nisto leva o usuário a um formulário no site onde eles podem escolher lá a própria nova senha.
Que método é preferível e porquê?
Se o método 1 é usado, talvez um terceiro poderia ler o e-mail e obter a nova senha. Se o método 2 é usado, o que é para parar alguém metodicamente passando por códigos UID para tentar acessar o formulário para mudar a senha de um usuário?
3 answers
O melhor padrão seria:
O utilizador pede que a senha seja reposta. O melhor é fazê-lo através do nome de utilizador, e não indicar se o utilizador existe ou não (para evitar possíveis utilizadores a listar através de um programa)
Você gera um registo numa nova tabela de bases de dados com o utilizador, datetime de requisição (=datetime atual), e um GUID que você acabou de gerar
Você envia um e-mail para o usuário, apontando para a página de reset senha com o GUID (não o userid) como parâmetro
Nesta página, você deve verificar se o GUID existe, e eventualmente você pode colocar alguma data de validade (=o usuário tem 1 dia para reiniciar, por exemplo)
Não se esqueça de marcar o registro como "usado" (com um campo extra em a tabela) quando o usuário reset sua senha, de modo que você pode parar um eventual segunda tentativa...
O OWASP tem uma boa lista de controlo de https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet
Aqui está um resumo rápido dos passos:
- recolher dados de identidade ou questões de Segurança
- Verificar As Questões De Segurança
- envia um Token por um canal lateral
- permitir ao utilizador alterar a senha
Verifique se o remetente é o utilizador real, fazendo perguntas de verificação.
NÃO envie a senha no email pessoal que não está na lista de empregados do planate.
Não adicione a palavra "password" ao título ou ao corpo do email.
Certifique-se de enviar separadamente o nome de utilizador e a senha.
Para o utilizador do Office 365, direccione-os para a área da minha senha ou envie este link https://passwordreset.microsoftonline.com
Não entendas. intimidado pelo Usuário, escalar para o gerente de TI se a necessidade surgir.