Spam utente: eliminazioni automatiche degli account e blacklist dei domini

Osservo un numero ridotto ma costante di account spam creati ogni giorno sul mio forum Discourse. Molti sembrano utilizzare indirizzi email falsi o non validi.

Sto cercando un modo per automatizzare il seguente processo:

  1. Un nuovo utente crea un account e Discourse invia l’email di attivazione/verifica.
  2. Se l’email di attivazione genera un hard bounce confermato, l’account utente non attivato viene eliminato automaticamente.
  3. Il sistema registra il dominio dell’indirizzo email che ha generato il bounce.
  4. Se più nuovi account che utilizzano lo stesso dominio generano hard bounce entro un periodo di tempo definito, il dominio viene aggiunto automaticamente all’elenco dei domini email bloccati.
  5. I comuni provider email legittimi come Gmail, Outlook, Yahoo, ecc., dovrebbero essere esclusi dal blocco automatico dei domini.

Ad esempio, se vengono creati diversi account con indirizzi email diversi da suspicious-domain.example nell’arco di pochi giorni e tutte le loro email di attivazione generano un hard bounce, il dominio alla fine verrebbe bloccato dalla creazione di ulteriori account.

L’obiettivo è utilizzare i dati dei bounce come un ulteriore segnale per identificare le registrazioni spam automatizzate, pulendo automaticamente gli account non attivati creati con indirizzi email inesistenti.

Discourse dispone attualmente di un plugin o di una funzionalità esistente che può realizzare questo obiettivo? In caso contrario, ci sono hook disponibili nel processo di gestione dei bounce di Discourse che potrebbero essere utilizzati per sviluppare un plugin che implementi questa funzione?

Ciao @LotusJeff

Hai dato un’occhiata a queste impostazioni, poiché penso che ti porteranno un po’ più avanti:

Configura queste impostazioni in /admin/settings/

Impostazione Valore suggerito Effetto
purge_unactivated_users_grace_period_days 1 Elimina gli account non attivati in 1 giorno invece di 14. Non è istantaneo come richiesto in #2, ma ha lo stesso effetto con un ritardo minore.
blocked_email_domains Aggiungi manualmente i TLD/domini noti per lo spam Blocca la registrazione dai noti trasgressori

Per qualsiasi cosa davvero automatizzata, penso che debba essere creato un plugin (o che non ne esista uno, a quanto so), oppure puoi dare un’occhiata alla nuova funzione workflow. Non so se ciò che desideri sia già possibile, ma si aggiorna quasi ogni giorno, quindi chissà :slight_smile:

Per la strada del plugin, c’è un evento a cui potresti agganciarti in DiscourseEvent.on(:email_bounce)

Vale anche la pena dare un’occhiata a Configure VERP to handle bouncing e-mails forse

Grazie. Ho già VERP attivo e al momento sto esaminando manualmente le email rimbalzate, eliminando gli account associati e aggiungendo i domini dei recidivi all’elenco dei domini email bloccati, utilizzando le impostazioni che hai menzionato.

Sembra che la prossima tappa sia approfondire i Workflows. È il momento di imparare una nuova funzionalità di Discourse e vedere quanto di questo processo posso automatizzare lì. :grinning_face: