Un bot anti-spam per Discord controlla quanto velocemente un membro scrive, se ripete lo stesso messaggio e quante persone menziona in una volta, e lo mette in timeout automaticamente nel momento in cui supera un limite che hai impostato. Fatto bene, intercetta in pochi secondi i bot dei raid e i flooder senza toccare un membro che sta semplicemente chattando in fretta. Questa guida spiega esattamente cosa conta come spam, come funzionano sotto il cofano le soglie e i timeout di Noxyr, e come regolarli in modo che i membri reali non vengano mai colpiti.

A burst of repeated messages fills a rate meter until it trips and the sender is timed out. rate limit TRIP Timed out

Cosa conta come spam?

La maggior parte delle configurazioni anti-spam su Discord controlla tre schemi distinti, e ciascuno di essi può attivare una risposta da solo:

  • Frequenza dei messaggi: troppi messaggi da una stessa persona in una finestra di tempo breve. Questo intercetta il flood da copia-incolla e gli account dei raid automatizzati.
  • Contenuto duplicato: lo stesso messaggio (o uno quasi identico) inviato più volte. Questo intercetta lo schema "entra e incolla lo stesso link truffa in cinque canali".
  • Menzioni di massa: un singolo messaggio che menziona molti più utenti o ruoli di quanto farebbe un messaggio normale, incluso @everyone e @here.

Un membro deve far scattare solo uno dei tre. Chi invia sei messaggi normali di fila, senza mai ripetere contenuti e senza menzionare nessuno, resta completamente intatto.

Come funzionano le soglie e i timeout anti-spam di Noxyr

Noxyr tiene una finestra scorrevole per ogni membro, per ogni server. Ogni messaggio che il membro invia all'interno della finestra viene aggiunto a quella finestra; tutto ciò che è più vecchio della durata della finestra esce automaticamente. Su ogni nuovo messaggio vengono eseguiti tre controlli su quella finestra:

  • Messaggi massimi / finestra: se il membro ha inviato più del numero configurato di messaggi nella finestra (predefinito: più di 6 in 8 secondi), questo è uno scatto per frequenza.
  • Limite di duplicati: prima del confronto, il contenuto viene ripulito, portato in minuscolo e gli spazi extra vengono ridotti, quindi "Ciao!!" e "ciao!!" contano come lo stesso messaggio. Una volta che quel numero di duplicati arriva nella finestra (predefinito: 4), è uno scatto.
  • Limite di menzioni: Noxyr conta gli utenti e i ruoli menzionati nel messaggio. Se il messaggio menziona @everyone o @here, a quel conteggio vengono aggiunti 100, il che garantisce uno scatto indipendentemente dal limite configurato, perché nessuno imposta un limite di menzioni anche lontanamente così alto.

Il primo controllo che scatta attiva la risposta; il bot non aspetta per vedere se ne scatterebbe anche un secondo. Quando succede, possono accadere due cose a seconda delle impostazioni:

  • Timeout: il membro viene messo in timeout per il numero di minuti configurato (predefinito 10, fino a 7 giorni dal comando, con il limite massimo di 28 giorni di Discord). Accade solo se il ruolo del bot è più alto di quello del membro, come per qualsiasi altra azione di moderazione.
  • Eliminazione dei messaggi: se attiva (predefinito), il bot elimina fino agli ultimi 10 messaggi tracciati di quel membro nel canale in cui è avvenuto lo scatto. Non rintraccia i messaggi che il membro ha scritto in altri canali durante la stessa raffica.

Dopo uno scatto, la finestra di quel membro si azzera, quindi una singola raffica attiva sempre una sola azione, non una per ogni messaggio oltre il limite.

Configurazione

Tutto quanto sopra si imposta con /security antispam o dalla pagina Sicurezza della dashboard:

  • enabled: l'anti-spam è disattivato per impostazione predefinita, anche quando il modulo Sicurezza è attivo, così attivare il modulo non inizia mai a moderare nessuno di sorpresa.
  • max_messages e window_seconds: il limite di frequenza e la durata della finestra.
  • duplicate_limit: quante ripetizioni servono prima che venga considerato spam.
  • mention_limit: quante menzioni in un messaggio servono prima che venga considerato menzione di massa.
  • timeout_minutes: quanto dura il timeout.
  • delete_messages: se anche lo spam viene ripulito.

/security status mostra i valori attuali sia per l'anti-spam sia per l'anti-nuke in un unico embed, che è il modo più rapido per verificare cosa è realmente attivo prima di modificare qualsiasi cosa.

Evitare i falsi positivi

Un filtro antispam che mette in timeout i membri reali insegna alle persone ad andarsene. Alcune cose impediscono che succeda:

  • Gli admin sono esentati automaticamente. Chiunque abbia il permesso Amministratore, o un ruolo che hai aggiunto come ruolo admin nella dashboard, viene saltato del tutto. Annunci e menzioni per i giveaway pubblicati dallo staff non fanno mai scattare il limite di menzioni.
  • I messaggi di bot e webhook non vengono mai ispezionati. Solo i messaggi umani arrivano al controllo anti-spam, quindi un webhook di annunci o un altro bot che scrive rapidamente in un canale di log non è un problema.
  • Aumenta la finestra prima del conteggio. Se chi scrive velocemente in un canale generale molto attivo si avvicina al limite di frequenza, allargare un po' window_seconds (ad esempio da 8 a 12) è di solito più delicato che alzare max_messages, perché dà più spazio alla normale conversazione senza aprire di molto la porta a un vero flood.
  • Fai attenzione a duplicate_limit con i contenuti di modello. Le community che usano modelli copia-incolla (post LFG, macro dei ticket, risposte alle candidature) possono sfiorare il controllo dei duplicati. Alza un po' il limite invece di disattivare del tutto il rilevamento dei duplicati.
  • Disattiva delete_messages mentre regoli i valori. Con l'eliminazione disattivata, lo spam viene comunque messo in timeout ma i messaggi restano visibili, il che rende molto più facile vedere esattamente cosa ha fatto scattare il filtro e regolare i numeri con prove reali.
  • Attualmente nessun embed di avviso viene pubblicato per gli scatti anti-spam, come invece accade con l'anti-nuke. Il registro di controllo di Discord registra comunque ogni timeout applicato dal bot, quindi controllalo lì (o usa /security status per le impostazioni attuali) se vuoi rivedere cosa è successo.

Bot anti-spam di Discord contro AutoMod integrato

L'AutoMod nativo di Discord può bloccare messaggi che contengono link simili allo spam o parole chiave segnalate, e ha una propria regola per lo spam di menzioni, il tutto configurato nelle Impostazioni del server. È davvero utile e non costa nulla attivarlo. Dove è inferiore a un bot anti-spam dedicato è che ogni protezione è una regola separata che costruisci una alla volta nell'editor delle regole, e nessuna di loro tiene traccia del comportamento complessivo di un membro attraverso i messaggi come fa una finestra scorrevole per membro. AutoMod reagisce al singolo messaggio in isolamento; non ha un concetto nativo del tipo "questa persona ha inviato sei messaggi in otto secondi" o "questa è la quarta copia dello stesso messaggio in questo minuto".

Un filtro basato su bot come quello di Noxyr riunisce limitazione di frequenza, rilevamento dei duplicati e limiti di menzioni dietro un unico interruttore, applica dappertutto le stesse esenzioni per gli admin, e ti offre un unico punto (la dashboard o /security status) da cui vedere e modificare tutti i numeri in una volta, invece di una pila di regole indipendenti. Usarli entrambi non crea conflitti. I filtri per parole chiave e link di AutoMod intercettano cose che un filtro basato sulla frequenza non vedrà mai, e un filtro anti-spam per membro intercetta schemi di flood che AutoMod non è progettato per tracciare.

Domande frequenti

L'anti-spam è attivo per impostazione predefinita? No. Il modulo Sicurezza è attivo per impostazione predefinita, ma l'anti-spam deve essere attivato separatamente con /security antispam enabled:True o dalla dashboard.

Metterà in timeout un moderatore che spamma reazioni o risposte veloci? No, se ha l'Amministratore o un ruolo admin configurato. Aggiungi lo staff di cui ti fidi ai tuoi ruoli admin dalla pagina Ruoli della dashboard, se non ha già l'Amministratore.

Elimina i messaggi in ogni canale in cui il membro ha scritto? No, solo nel canale in cui è avvenuto lo scatto, e solo fino agli ultimi 10 messaggi tracciati in quel canale.

Qual è la differenza tra questo e l'anti-nuke? L'anti-spam controlla i membri comuni che inviano messaggi. L'anti-nuke controlla azioni distruttive a livello admin, come l'eliminazione di massa di canali o ruoli. Sono configurati separatamente e possono funzionare in modo indipendente; consulta la guida completa all'anti-nuke per la seconda metà del modulo sicurezza di Noxyr.

Posso impostare limiti diversi per canale? Al momento no; i limiti si applicano a tutto il server, anche se l'eliminazione tocca solo il canale in cui è avvenuta la raffica.

L'anti-spam è un unico interruttore nel modulo Sicurezza gratuito di Noxyr, insieme ad anti-nuke, verifica e log di moderazione. Aggiungi Noxyr gratis e attivalo dalla documentazione sulla sicurezza, oppure leggi la pagina completa delle funzioni del bot di sicurezza per tutto ciò che copre il modulo.