Pergunta

Temos vindo a trabalhar no aplicativo web onde em precisamos implementar tradicional web-apps funcionalidade de recuperação de senha. De acordo com as tendências existem abordagens como ..

  1. O envio de redefinição de senha link para e-mail do usuário.
  2. Fazer pergunta secreta para o usuário para recuperação de senha.
  3. redefinir a senha existente e criar uma nova senha e enviá-lo para o usuário. Isso também pode forçar o usuário a alterar a senha em cima próximo logon.

Temos alguma técnica não-tradicional para a implementação de mecanismo de recuperação de senha? Que outras abordagens que você tentou para isso?

Graças.

Foi útil?

Solução

Depende do nível de segurança que você está apontando para, os custos de suporte e questões de usabilidade.

Emailing um link de redefinição de senha é a abordagem preferida para uma série de razões:

  • os custos de suporte - Este é o fator mais importante a partir de uma perspectiva de negócio. Os usuários muitas vezes esquecem até mesmo suas dicas de senha ou usar um endereço falso ou esquecer seu nome de usuário. Todas essas são preocupações legítimas para as quais você pode receber pedidos de suporte. Este, por sua vez, cria outro problema, você tem que estabelecer a legitimidade do usuário, pedindo-lhes sobre atividade recente da conta e não o que. Se você não fornecer esse nível de apoio um monte de usuários novatos vai se decepcionar. E-mail um link de redefinição de senha atenua estas preocupações porque os usuários normalmente têm um ou dois endereços de email e eles podem facilmente recuperar o seu nome de usuário / senha, fornecendo seu endereço de e-mail.

  • Preocupações com a segurança - Este é o fator mais importante a partir de uma perspectiva técnica. Existem várias preocupações aqui que você tem que pesar. Uma conta de e-mail comprometida significa que o hacker pode ir para acessar todos os serviços dos usuários que permitem que um link de redefinição de senha para ser enviado. Você pode se contentar com meio termo que é para e-mail um link de redefinição de senha para o usuário que por sua vez pede ao usuário uma pergunta dica de senha após o que lhes permite redefinir sua senha. Mais uma vez, você nunca deve expor a senha do usuário em qualquer meio. Na verdade, se você tem a capacidade de mostrar-lhes a sua senha de seu sistema já é inseguro porque implica que você não está armazenando-os usando um hash seguro como o SHA-1 e um desenvolvedor em sua empresa pode obter a senha de todos.

  • Usabilidade - Este é o maior fator a partir da perspectiva do usuário. E-mail um link de redefinição de senha requer que o usuário ir e verificar o seu endereço de e-mail que pode significa o tempo para atingir a tarefa pode ir até 2 ou mesmo 3 minutos. No entanto, eu acho que isso não é um grande negócio. A maioria dos usuários não parecem se importar com isso, porque eles sentem que estão em falta e esta é uma medida de segurança em seu melhor interesse. Estou apenas levantando a hipótese da experiência e os usuários pessoais na sensação geral poder de forma diferente. Gostaria de colocar a segurança como uma prioridade maior do que a experiência do usuário porque os usuários raramente ou necessidade cada vez para recuperar suas senhas (usuário ainda não logado por um longo tempo e esqueceu sua senha, o usuário tinha salvado sua senha no navegador que foi reinstalado e alguns outros casos extremos).

Outras dicas

Outras opções que vi na prática incluem:

  • permitindo uma segunda senha quando algo dá errado -. Algo como o Super-PIN utilizado nos telefones celulares
  • Criar um token de arquivo (normalmente uma chave PGP) que o usuário irá baixar na criação da conta e armazená-lo em um stick USB, ou arquivá-lo para uso posterior. Quando há um problema que o usuário irá carregar o token, provando assim que ele é o "dono" da conta, bem como a aplicação do que irá permitir que o usuário alterar a senha. Isso pode ser um sinal constante, ou um arquivo com vários símbolos (semelhante a um TANs bancários on-line.) - cada vez que um token é usado, também é invalidado

Os métodos acima não são tão simples de implementar, mas são bastante user friendly (uma vez que não há nada de novo sobre eles e são outro presente no dia-a-dia situações).

Na minha opinião, o envio de um link de redefinição de senha para e-mail do usuário é a melhor maneira. Esta é a maneira Digg faz isso, e esta é a maneira que eu faço.

Mas neste método, precisamos contar com o usuário seja capaz de acessar seu e-mail.

Em relação ao método de pergunta secreta: na maioria das vezes, a resposta da pergunta secreta não é tão secreto quanto gostaríamos. Seria no melhor interesse dos nossos usuários para bloquear este método de uma "conta-hack".

web site A e seus administradores não deve saber a senha de texto clara de seus usuários. Deve haver apenas um one-way hash da senha armazenada para comparação em eventos de autenticação. Assim, o envio de um texto claro senha não deve ser uma opção.

Pessoalmente, como o link de redefinição de senha enviada para o usuário. Lembre-se de expirar esse link embora. Além disso, notificar o usuário por e-mail das tentativas de redefinição de senha (pode ser o mesmo e-mail como o link de redefinição), bem após o reset bem sucedido.

Uma abordagem adicionado ao link de redefinição de senha pode ser criar uma chave aleatória que não sair no link de e-mail que o usuário terá que digitar uma vez que o link foi clicado. Isso ajudaria contra as pessoas que capturam o e-mail.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top