Ocultar "e-mail já em uso" ao se cadastrar por padrão

Contexto

Com as configurações padrão atuais, ao se inscrever para uma conta com um e-mail que já foi registrado, o formulário de inscrição informará isso:

Estamos mudando a configuração padrão para não fornecer essa informação. Em vez disso, o formulário de inscrição ficará assim, independentemente de o e-mail já estar registrado ou não:

Isso também afeta a redefinição de senha de maneiras semelhantes. Com a configuração desativada, o formulário fornece feedback imediato de que o e-mail está no sistema:

Com a configuração ativada, ela não divulga essa informação:

Por que estamos mudando?

Um ator malicioso pode usar esse feedback para realizar uma enumeração de conta, informando se determinados usuários existem neste fórum, o que pode permitir que eles visem esses usuários com phishing.

Isso não afetará negativamente os usuários legítimos?

O caso aqui é se um usuário esqueceu que já tem uma conta e tenta se inscrever ou redefinir a senha usando o mesmo e-mail, o que deve ser uma ocorrência relativamente rara. Mas mesmo assim, eles simplesmente receberão um e-mail informando que já possuem uma conta.

A mudança, em última análise, não afeta a capacidade dos usuários legítimos de se inscreverem ou acessarem suas contas.

Mas eu prefiro o padrão antigo

Se você alterou essa configuração em algum momento, o novo padrão não substituirá a configuração personalizada. Se você quiser voltar ao padrão antigo, pode definir a configuração hide_email_address_taken de volta para false.

Observação: estamos considerando ocultar essa configuração do site da página de configurações do administrador no futuro.

10 curtidas

O que acontece no caso em que o usuário se lembra incorretamente do endereço de e-mail que usou para se inscrever?

Por exemplo, suponha que o usuário pense que se inscreveu como example@gmail.com, mas na verdade se inscreveu como example@yahoo.com. Eles tentarão redefinir a senha fornecendo o endereço de e-mail example@gmail.com, mas não há conta com esse endereço de e-mail.

Se uma conta corresponder a ted@discourse.org, você deverá receber um e-mail com instruções sobre como redefinir sua senha em breve.

Se o usuário simplesmente não receber um e-mail nesse caso, ele nunca saberá que forneceu o endereço de e-mail errado e não saberá quando/se tentar novamente com um endereço de e-mail diferente.

Em vez disso, a mensagem deve simplesmente dizer: “Você deverá receber um e-mail com instruções sobre como redefinir sua senha em breve”, e o usuário deverá receber um e-mail explicando “Alguém solicitou uma redefinição de senha para example@gmail.com, mas não há conta com esse endereço de e-mail.”

Isso não permitirá que ninguém execute a enumeração de contas, mas permitirá que o usuário saiba que enviou o endereço de e-mail errado e tente um diferente.

5 curtidas

O problema com essa abordagem é que ela permite que atores maliciosos acionem o envio de e-mails para endereços que nunca interagiram com sua instância ou que não existem.

Isso pode levar a um número muito maior de e-mails enviados, potencialmente causando um alto custo monetário. Também pode levar a um grande aumento de usuários relatando spam e uma taxa de rejeição mais alta, potencialmente fazendo com que operadoras como o Gmail coloquem e-mails seus na lista negra.

5 curtidas

Os atacantes já poderiam fazer isso simplesmente registrando novas contas. Se o atacante conhece 100.000 endereços de e-mail, ele pode registrar 100.000 contas, e o Discourse enviará a cada uma delas um e-mail de ativação, que cada usuário poderia denunciar como spam.

Enviar e-mails de “não é possível redefinir a senha, sua conta não existe” para endereços de e-mail de contas que não existem não torna esse ataque mais fácil ou mais difícil.

Este ataque não é um problema para a maioria dos sites, mas, se você estiver preocupado com ele, deve usar o plugin Discourse hCaptcha, que aumenta o custo para o atacante. (O Meta não o usa; a maioria dos fóruns hospedados pelo Discourse não o usa.)

Eu acho que se o Discourse aceitar minha sugestão de começar a enviar e-mails de “não é possível redefinir a senha, sua conta não existe” para endereços de e-mail de contas que não existem, faria sentido o plugin hCaptcha funcionar no formulário de redefinição de senha, bem como no formulário de inscrição. (Eu ainda não precisaria/usaria o hCaptcha.)

3 curtidas

Sim, isso é válido. Eu só pensei no caso em si, sem considerar outras áreas onde isso já é possível e, como acontece, completamente impraticável de impedir.

Eles não sabem?

  1. Esqueci minha senha e quero acesso a este site. Digito o que acho que é o e-mail certo
  2. Não recebo um link de redefinição de senha

Então, agora eu sei automaticamente uma de duas opções: Um, digitei o e-mail errado ou Dois, o site não está funcionando corretamente.

Minhas opções agora são: tentar outro e-mail ou tentar entrar em contato com alguém que administra o site.

Agora, com sua sugestão, recebo um e-mail informando que a conta não existe. Minhas opções são tentar outro e-mail ou entrar em contato com alguém que administra o site. É o mesmo ponto final com 0 passos extras

1 curtida

Exceto… a maioria dos usuários comuns não pensa dessa forma, ou nem pensa.

1 curtida