Ir para o conteúdo
samesdavis

[Resolvido] Projetar a segurança dos usuários, esquecimento de senha

Mensagens Recomendadas

samesdavis

Tenho um sistema que utiliza base de dados access.

Nela tenho uma tabela Tbl_Usuarios com os campos: ID, USER, PASS

No sistema existe a possibilidade de trocar de senha, mas ainda não sei como implantar a parte de perda da senha.

Se o usuário perder, ou esquecer a senha, tenho adotado a prática do administrador do sistema ir no cadastro de usuários e trocar

a senha manualmente, com os asteriscos é claro. E passar via email a nova senha para o usuário.

Alguém poderia me dar uma sugestão de uma melhor maneira do usuário poder trocar a senha sem ter que informar a nova senha ?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmg

Mete a password nova como "password" e obriga o utilizador a mudar essa password.

Faz isso de maneira que a password "password" so esteja activa durante um periodo de tempo pequeno (enquanto o utilizador e o administrador falam ao telefone ou trocam emails).

Um caso em que o utilizador se esqueca da password seria assim

Utilizador: (telefona para administrador)

Administrador: (recebe chamada)

U: Oh pa, esqueci-me da password. Faz o reset ao utilizador "JOAQUIM"

A: (faz reset ao JOAQUIM) Pronto, entra com "password"

U: Ta-me a pedir para mudar de password

...


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ribeiro55

Guardas as senhas na BD da forma que os utilizadores as inserem? Não deves!

Existem vários mecanismos de recuperação de passwords, e todos eles têm de assumir algumas coisas.

Penso que o mais comum seja o mecanismo em que o sistema possuí um registo associado a um email válido e assume-se que o email é pessoal.

Assume-se também que a aplicação tem uma área onde cada user pode alterar a password.

Uma vez que se trata de um fat client, não faz sentido usar URLs para disparar ações. Assim, podes ter algo como:

1. User clica em "Esqueci a palavra-passe".

2. Geras internamente uma password nova, aleatória e actualizas o registo.

3. Envias um email para o user com essa password temporária, e indicas que deverá alterar no próximo login

Podes incluír um passo adicional de confirmação, também para o email, para evitar que o pessoal se divirta a fazer reset às passwords uns dos outros e terem de andar sempre a ver a nova password no email :P

Este passo é só como que um OK para fazer reset, ali entre o passo 1 e 2, que garante que a autorização vem do email do tipo.

A sugestão do pmg é uma alternativa, mas não impede por exemplo ter um colega ao lado a ouvir a conversa e entrar com o user do outro e a password default.

Também não impede que o admin se passe da cabeça por receber emails para fazer reset :)

Editado por ribeiro55

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
samesdavis

Muito obrigado pela dica Sérgio.

estive pensando em colocar uma palavra secreta para trocar a senha

assim um usuário não resetaria a senha do outro, mas se o usuário esquecer as duas, então o administrador entra em ação e altera na mão.

Estou pensando ainda se isso daria certo.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
samesdavis

Resolvi da seguinte forma:

  1. Criei mais um campo na tabela de usuários com o nome de passvenc ( Boolean )
  2. Coloquei uma mensagem na tela de login para em caso de esquecimento de senha, o usuário deverá entrar em contato com o suporte de TI
  3. No sistema eu criei um formulário de acesso somente para os administradores do sistema que se chama: Resetar senhas
  4. Nesse formulário existe uma LISTBOX com todos os usuários exceto o Administrador
  5. Nele existe um botão de resetar as senhas dos usuários selecionados
  6. internamente o sistema irá alterar a senha dos usuários selecionados para uma senha padrão 15379 e irá marcar o campo passvenc como TRUE
  7. Ao fazer login novamente , o usuário entrará com a senha padrão e automaticamente o sistema pedirá para que ele troque a senha, se ele não trocar, a senha o sistema irá se fechar.

Com isso não haverão brincadeiras de usuários resetando senhas de outros e não há necessidade de envio de senha por email .

Resolvido.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.