Coder Social home page Coder Social logo

Comments (3)

Rafatcb avatar Rafatcb commented on June 26, 2024 3

@esmsena obrigado pela sugestão! Você tem razão quando diz que isso tornaria a usabilidade melhor: para o usuário que esqueceu algo para acessar a conta, ficaria bem mais fácil. O ponto é que o sistema está desse jeito por questões de segurança. Por exemplo:

  1. A mensagem de rate-limit no endpoint /sessions (para realizar login) é uma mensagem de "Dados não conferem" e com uma lentidão falsa, como se estivesse verificando os dados. #635
  2. A escolha por usar a mesma mensagem de erro foi consciente, e isso faz com que um invasor tenha dificuldade em saber se uma conta com aquele e-mail existe ou não. #201 (comment)
  3. Existe um issue aberto para a requisição de login demorar o mesmo tempo caso o usuário exista ou não. #186

Essa resposta no Security Stack Exchange fala um pouco mais sobre isso.

Agora, eu não acho que estamos fazendo do jeito certo. Por exemplo, vamos supor que eu queira acessar a conta de alguém que não tenho certeza do e-mail. Pelo login, não consigo descobrir se o e-mail está cadastrado, mas pela recuperação de senha eu consigo:

Mensagem "O "email" informado não foi encontrado no sistema." ao tentar recuperar senha

E também no cadastro, que já é um fluxo mais complicado para a pessoa descobrir se a conta existe, porque num teste de força bruta acabará criando contas sem querer, até cair no firewall:

Mensagem "O email informado já está sendo usado." ao tentar cadastrar uma conta

Então eu acredito que temos duas opções:

  1. Mudar as mensagens de erro no login. Isso impactará na mensagem de rate limit, que se for diferente, ficará fácil de perceber que a pessoa já está sem cota de requisições.
  2. Mudar as outras mensagens de erro (cadastro e recuperação de senha). No caso de recuperação de senha, acho que é uma prática comum uma mensagem do tipo "Um e-mail foi enviado caso a conta exista" ou algo parecido. Já no cadastro, não sei como poderia ficar.

Quem puder contribuir nesse assunto, será ótimo.

from tabnews.com.br.

aprendendofelipe avatar aprendendofelipe commented on June 26, 2024 2

Pelo público do TabNews, acho que vale a pena priorizar a segurança ao invés de mostrarmos erros específicos em caso de falhas de login.

Tanto que ainda está pendente a #186, que tem como uma das intenções, evitar qualquer maneira de descobrir se um email já está cadastrado no sistema, o que implica não só em falsificar um tempo de validação de senha, mas também devolver mensagens padronizadas no cadastro e recuperação de senha.

from tabnews.com.br.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.