Jump to content
samesdavis

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

Recommended Posts

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 ?

Share this post


Link to post
Share on other 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!

Share this post


Link to post
Share on other 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 :)

Edited by 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"

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.