Bloqueando tentativas de registro de domínio de spammer. <random>.

Tivemos um fluxo recente de tentativas de registro com endereços de e-mail que se parecem com @services.cn, que estão enchendo nossa fila de MTA como não entregáveis.

Meu entendimento é que não há como bloquear domínios usando curingas (conforme Use of an asterisk in blocked email domains prevents registration from any email address - #7 by selase)

Existe alguma outra maneira de evitar esse tipo de ataque?

O Discourse não oferece suporte a curingas na lista de domínios de e-mail bloqueados, portanto, bloquear padrões de domínio inteiros como @services.cn não é possível diretamente. No entanto, existem várias medidas que você pode tomar para reduzir ou prevenir esses ataques de registro de spam:

  1. Reduzir “novas contas por IP de registro”
    Diminua essa configuração para 1 ou outro número baixo para limitar quantas novas contas podem ser criadas do mesmo endereço IP. Isso ajuda a prevenir registros em massa de um único IP e é muito eficaz durante um ataque.
  2. Ativar hCaptcha no Registro
    Adicione um desafio CAPTCHA ao seu formulário de inscrição ativando o Plugin Discourse hCaptcha. Isso aumenta o atrito para bots e cadastros automatizados e está disponível em todos os planos hospedados.
  3. Bloquear Manualmente Domínios Maliciosos Conhecidos
    Embora curingas não sejam suportados, você pode adicionar explicitamente domínios problemáticos à sua lista de “domínios de e-mail bloqueados”.
  4. Exigir Aprovação de Novos Usuários
    Ative temporariamente a configuração para “aprovar usuários”. Isso coloca todos os novos registros em uma fila de moderação para aprovação manual.

Sandro, você conseguiu resolver seu problema?

Nós acabamos bloqueando esses endereços no nível do postfix

Essa é uma jogada inteligente! Qual foi o curinga que funcionou?

Eu me pergunto por que isso não funcionou? Talvez haja um argumento a ser feito para o suporte a curingas, embora eu possa imaginar que seria muito fácil de configurar incorretamente e tornar seu site impossível de usar para qualquer pessoa!

Respondi por e-mail, mas não vejo minha resposta aqui, não tenho tempo para procurá-la agora e a interface web não me permite simplesmente digitar texto pré-formatado (eu odeio isso!) então você terá que adivinhar :slight_smile:

O que você quer dizer com não conseguir digitar texto pré-formatado?

strk diz que o curinga era /.*@service\\..*\\.cn/.

Bem-vindo à meta, @lnicola! :sunflower:

@strk talvez você não esteja familiarizado com como o texto pré-formatado funciona no Discourse. Existem várias maneiras de fazer isso e é bastante poderoso quando você aprende como. Veja: Posting code or preformatted text

@tobiaseigen há um pequeno bug, no entanto, se eu copiar essa regex como texto e colá-la no Discourse, ela é corrompida para /.@service...cn/ (as barras invertidas são perdidas).

Estamos saindo do assunto aqui! :rofl:

O que você está vendo aí não é um bug, mas um comportamento intencional do markdown. Dois asteriscos ao redor do texto exibem o texto como itálico. Como ele inclui um @, é exibido como @nomedeusuário inválido. Assim que você circunda a regex com crases, ela é exibida como texto pré-formatado:

Itálico com nome de usuário: /.@service\..\.cn/
Texto pré-formatado: /.*@service\\..*\\.cn/

Não funciona para mim:

  1. cole /.*@service\\..*\\.cn/ em um editor de texto simples, copie de volta
  2. abra um backtick no Discourse, cole, você obtém /.@service...cn/
  3. cole como texto simples (Ctrl-Shift-V) em backticks, você ainda obtém /.@service...cn/
  4. se você copiar como HTML (do meu comentário acima), a colagem funciona bem

Sim, consigo replicar o que você está descrevendo, usando o editor de rich text. Tente mudar para o editor de markdown primeiro e funcionará. Não tenho certeza se há algo que possa ser feito a respeito disso.