Comments (4)
@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:
- 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 - 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)
- 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:
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:
Então eu acredito que temos duas opções:
- 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.
- 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.
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.
Então, para organizar aqui, o que precisamos fazer para resolver este issue é:
- Mudar a mensagem de erro no cadastro caso o e-mail já esteja utilizado. (não sei qual mensagem utilizar, seria bom ver como outros sites lidam com isso)
- Mudar a mensagem na recuperação de senha para algo neutro, do tipo "Um e-mail foi enviado caso a conta exista".
Caso alguém tenha sugestões para a mensagem no cadastro, pode comentar. Acredito que mudar para algo como "Não é possível utilizar este e-mail" já seja uma mudança positiva, visto que ainda fica claro qual é o erro, mas não fica claro se existe uma conta com esse e-mail, ou se uma conta já o utilizou e ela foi banida etc. Acho que mudar para algo genérico como "Dados inválidos, tente novamente" ou qualquer coisa assim, seria uma experiência bem pior.
O que vocês acham?
from tabnews.com.br.
@esmsena, você foi citada na publicação sobre as novidades do TabNews 🎉
https://www.tabnews.com.br/FelipeBarso/tabnews-5k-no-github-melhorias-de-seguranca-e-mais-novidades
from tabnews.com.br.
Related Issues (20)
- Não é possível editar ou apagar um conteúdo usando apenas o teclado HOT 1
- Tela de Insight dos Posts e Perfil HOT 1
- Pesquisa de conteúdo HOT 1
- Bloquear cadastro com senhas fracas HOT 7
- Marcar um comentário como resposta? HOT 7
- Melhorar processamento dos comentários HOT 2
- havera uma versão em inglês ? HOT 2
- Implementação do pubsubhubbub na RSS
- Adicionar funcionalidade de Favoritar os posts HOT 1
- Tabnews: múltiplos logins associados ao mesmo endereço Gmail. Detalhes na descrição. HOT 3
- Mensagem de erro ao tentar publicar novo conteúdo HOT 7
- Encerramento da parceria com a Vercel HOT 20
- Campo `description` em algumas páginas causa resultados inadequados no Google HOT 3
- Posso implementar a opção de Login com github? HOT 2
- Latex em publicações HOT 1
- Página de anúncio tem link para o próprio anúncio HOT 2
- Limitar anúncios ativos por usuário HOT 10
- Implementação de categorização de posts HOT 1
- Forçar usuário a comentar quando tentar negativar post HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tabnews.com.br.