Leonardo, eu fico muito feliz em ver sua preocupação com o projeto, é realmente muito legal isso e nunca podemos perder esse carinho 🤝
Minhas considerações:
[email protected]
é um email válido, assim como qualquer outro email com o caractere+
.- Eu, inclusive aqui no TabNews, fiz o meu cadastro utilizando um
+algumacoisa
por medida de segurança e sugiro você fazer isso em todos os sites que se cadastrar (cada site uma variação nova), pois com isso você tem uma combinação única entreemail
esenha
para todos os serviços. - Quem quiser abusar com cadastros, vai sempre conseguir fazer isso por outras vias, como por exemplo usando disposable emails. Esse serviço é um exemplo https://temp-mail.org/ tem outros que a cada refresh você ganha um email que varia caracteres antes e depois do
@
e fica difícil de achar um padrão. - Então uma medida seria primeiro usar listas de disposable emails, como por exemplo esse módulo: https://www.npmjs.com/package/disposable-email-domains
- Uma segunda medida seria usar rate-limiting por ip. No exemplo de criar uma conta você poderia barrar esse ip de criar outra conta por, por exemplo, 1 dia. Daí o atacante teria que se dar o trabalho de usar múltiplos ips.
- No fim do dia, é uma corrida de gato e rato que não termina, mas precisamos cuidar muito com estratégias que não irão barrar atacantes, mas que irão barrar pessoas que genuinamente querem usar um recurso.