Spam utilisateur : suppressions de comptes automatiques et liste noire de domaines

Je constate qu’un nombre faible mais constant de comptes spam est créé chaque jour sur mon forum Discourse. Beaucoup semblent utiliser des adresses e-mail fictives ou invalides.

Je cherche un moyen d’automatiser le processus suivant :

  1. Un nouvel utilisateur crée un compte et Discourse envoie l’e-mail d’activation/vérification.
  2. Si l’e-mail d’activation génère un rebond dur confirmé, le compte utilisateur non activé est automatiquement supprimé.
  3. Le système enregistre le domaine de l’adresse e-mail ayant fait l’objet du rebond.
  4. Si plusieurs nouveaux comptes utilisant le même domaine génèrent des rebonds durs dans une période de temps définie, le domaine est automatiquement ajouté à la liste des domaines e-mail bloqués.
  5. Les fournisseurs d’e-mail légitimes courants tels que Gmail, Outlook, Yahoo, etc., doivent être exclus du blocage automatique des domaines.

Par exemple, si plusieurs comptes utilisant différentes adresses e-mail provenant de suspicious-domain.example sont créés en quelques jours et que tous leurs e-mails d’activation génèrent des rebonds durs, le domaine finira par être bloqué pour la création de nouveaux comptes.

L’objectif est d’utiliser les données de rebond comme un autre signal pour identifier les inscriptions spam automatisées, tout en nettoyant automatiquement les comptes non activés créés avec des adresses e-mail inexistantes.

Discourse dispose-t-il actuellement d’un plugin ou d’une fonctionnalité existante permettant de réaliser cela ? Sinon, existe-t-il des points d’accroche (hooks) disponibles dans le processus de gestion des rebonds de Discourse qui pourraient être utilisés pour créer un plugin implémentant cette fonctionnalité ?

Bonjour @LotusJeff

Avez-vous jeté un œil à ces paramètres, car je pense qu’ils vous permettront d’avancer un peu dans cette direction :

Configurez ces paramètres dans /admin/settings/

Paramètre Valeur suggérée Effet
purge_unactivated_users_grace_period_days 1 Supprime les comptes non activés après 1 jour au lieu de 14. Ce n’est pas instantané comme demandé dans #2, mais l’effet est le même avec un délai plus court.
blocked_email_domains Ajoutez manuellement les TLD/domaines de spam connus Bloque l’inscription provenant de domaines identifiés comme indésirables

Pour une automatisation plus poussée, je pense qu’il faudrait développer un plugin (ou qu’aucun n’existe à ma connaissance), ou vous pouvez consulter la nouvelle fonctionnalité de workflows. Je ne sais pas si ce que vous souhaitez est déjà possible, mais elle est mise à jour presque quotidiennement, alors qui sait :slight_smile:

Pour la piste des plugins, il y a un événement auquel vous pourriez vous raccorder : DiscourseEvent.on(:email_bounce)

Il est également utile de consulter Configure VERP to handle bouncing e-mails peut-être