Bot antyspamowy na Discordzie sprawdza, jak szybko członek pisze, czy powtarza tę samą wiadomość i ile osób wzmiankuje naraz, a potem automatycznie nakłada na niego timeout w chwili, gdy przekroczy ustawiony przez Ciebie limit. Zrobiony dobrze, w kilka sekund wyłapuje boty najazdowe i zalewających kanał, nie dotykając członka, który po prostu szybko pisze. Ten przewodnik krok po kroku pokazuje, co dokładnie uznaje się za spam, jak działają progi i timeouty Noxyr od środka i jak je dostroić, żeby prawdziwi członkowie nigdy nie wpadali.

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

Co uznaje się za spam?

Większość konfiguracji antyspamu na Discordzie pilnuje trzech osobnych wzorców i każdy z nich może sam wywołać reakcję:

  • Tempo wiadomości: zbyt wiele wiadomości od jednej osoby w krótkim oknie. Łapie to zalewanie kopiuj-wklej i skryptowane konta najazdowe.
  • Powtarzająca się treść: ta sama wiadomość (albo prawie identyczna) wysyłana w kółko. Łapie to schemat „dołącz i wklej ten sam scamowy link na pięciu kanałach”.
  • Masowe wzmianki: pojedyncza wiadomość, która pinguje dużo więcej użytkowników lub ról, niż zrobiłaby zwykła wiadomość, w tym @everyone i @here.

Członek musi wpaść tylko w jeden z trzech. Ktoś, kto wysyła sześć normalnych wiadomości z rzędu, ale nigdy nie powtarza treści i nikogo nie wzmiankuje, zostaje całkowicie nietknięty.

Jak działają progi i timeouty antyspamu Noxyr

Noxyr śledzi przesuwające się okno dla każdego członka, na każdym serwerze. Każda wiadomość tego członka w oknie dochodzi do tego okna; wszystko starsze niż długość okna wypada automatycznie. Przy każdej nowej wiadomości trzy sprawdzenia działają na tym oknie:

  • Maks. wiadomości / okno: jeśli członek wysłał w oknie więcej wiadomości niż skonfigurowana liczba (domyślnie: więcej niż 6 w 8 sekund), to jest to przekroczenie tempa.
  • Limit duplikatów: przed porównaniem treść jest przycinana, zamieniana na małe litery i ma usunięte nadmiarowe spacje, więc „Cześć!!” i „cześć!!” liczą się jako ta sama wiadomość. Gdy w oknie pojawi się tyle duplikatów (domyślnie: 4), to jest przekroczenie.
  • Limit wzmianek: Noxyr liczy wzmiankowanych użytkowników i role w wiadomości. Jeśli wiadomość pinguje @everyone albo @here, do tej liczby dodawane jest 100, co gwarantuje przekroczenie niezależnie od ustawionego limitu, bo nikt nie ustawia limitu wzmianek nawet zbliżonego do tej wartości.

Pierwsze sprawdzenie, które zostanie przekroczone, uruchamia reakcję; bot nie czeka, czy zadziała też drugie. Gdy to się stanie, w zależności od ustawień mogą zajść dwie rzeczy:

  • Timeout: członek dostaje timeout na skonfigurowaną liczbę minut (domyślnie 10, z komendy do 7 dni, z limitem 28 dni narzuconym przez Discorda). Dzieje się tak tylko wtedy, gdy rola bota stoi wyżej niż rola członka, tak jak przy każdej innej akcji moderacyjnej.
  • Usuwanie wiadomości: jeśli włączone (domyślnie tak), bot usuwa do 10 ostatnich śledzonych wiadomości tego członka na kanale, na którym doszło do przekroczenia. Nie szuka wiadomości, które członek napisał na innych kanałach w tym samym zrywie.

Po przekroczeniu okno tego członka się resetuje, więc pojedynczy zryw uruchamia tylko jedną akcję, a nie jedną na każdą wiadomość ponad limit.

Konfiguracja

Wszystko powyżej ustawiasz komendą /security antispam albo na stronie Security w panelu:

  • enabled: antyspam jest domyślnie wyłączony, nawet gdy sam moduł Security jest włączony, więc włączenie modułu nigdy nie zacznie z zaskoczenia moderować kogokolwiek.
  • max_messages i window_seconds: limit tempa i długość okna.
  • duplicate_limit: ile powtórzeń wystarczy, żeby uznać to za spam.
  • mention_limit: ile pingów w jednej wiadomości wystarczy, żeby uznać to za masową wzmiankę.
  • timeout_minutes: jak długo trwa timeout.
  • delete_messages: czy spam ma być też usuwany.

/security status pokazuje aktualne wartości zarówno antyspamu, jak i anti-nuke w jednym embedzie. To najszybszy sposób, żeby sprawdzić, co faktycznie działa, zanim cokolwiek zmienisz.

Unikanie fałszywych trafień

Filtr spamu, który wycisza prawdziwych członków, uczy ludzi odchodzić. Kilka rzeczy temu zapobiega:

  • Admini są automatycznie zwolnieni. Każdy z uprawnieniem Administrator albo z rolą, którą dodałeś jako rolę admina w panelu, jest w całości pomijany. Ogłoszenia i pingi do giveawayów wysyłane przez personel nigdy nie przekraczają limitu wzmianek.
  • Wiadomości botów i webhooków nigdy nie są sprawdzane. Do sprawdzenia antyspamu trafiają tylko wiadomości ludzi, więc webhook z ogłoszeniami albo inny bot szybko piszący na kanale logów nie jest problemem.
  • Najpierw podnieś okno, potem liczbę. Jeśli szybcy piszący na ruchliwym kanale ogólnym zbliżają się do limitu tempa, lekkie poszerzenie window_seconds (np. z 8 do 12) jest zwykle łagodniejsze niż podniesienie max_messages, bo daje normalnej rozmowie więcej miejsca, nie otwierając szeroko drzwi dla prawdziwego zalewu.
  • Uważaj na duplicate_limit przy szablonach. Społeczności, które używają szablonów kopiuj-wklej (ogłoszenia LFG, makra ticketów, odpowiedzi w podaniach), mogą ocierać się o sprawdzanie duplikatów. Lepiej lekko podnieść limit niż całkowicie wyłączać wykrywanie duplikatów.
  • Wyłącz delete_messages na czas dostrajania. Przy wyłączonym usuwaniu spam nadal dostaje timeout, ale wiadomości zostają widoczne, co bardzo ułatwia zobaczenie, co dokładnie uruchomiło filtr, i korygowanie wartości na podstawie prawdziwych dowodów.
  • Obecnie żaden embed z alertem nie jest wysyłany przy przekroczeniach antyspamu, jak robi to anti-nuke. Dziennik audytu Discorda nadal zapisuje każdy timeout, jaki bot nałoży, więc sprawdź tam (albo /security status, żeby zobaczyć aktualne ustawienia), jeśli chcesz przejrzeć, co się stało.

Bot antyspamowy na Discordzie a wbudowany AutoMod Discorda

Natywny AutoMod Discorda potrafi blokować wiadomości zawierające linki podobne do spamu albo oznaczone słowa kluczowe, a także ma własną regułę na spam wzmiankami, wszystko konfigurowane w ustawieniach serwera. Jest naprawdę przydatny i nic nie kosztuje. Tam, gdzie nie dorównuje dedykowanemu botowi antyspamowemu, jest w tym, że każda ochrona to osobna reguła, którą budujesz po jednej w edytorze reguł, a żadna z nich nie śledzi ogólnego zachowania członka w wielu wiadomościach tak, jak robi to przesuwane okno dla każdego członka. AutoMod reaguje na pojedynczą wiadomość w izolacji; nie ma natywnego pojęcia „ta osoba wysłała sześć wiadomości w osiem sekund” ani „to czwarta kopia tej samej wiadomości w ciągu minuty”.

Filtr oparty na bocie, jak ten w Noxyr, łączy ograniczanie tempa, wykrywanie duplikatów i limity wzmianek za jednym przełącznikiem, stosuje te same wyjątki dla adminów wszędzie i daje jedno miejsce (panel albo /security status), gdzie widzisz i zmieniasz wszystkie wartości naraz, zamiast stosu niezależnych reguł. Uruchomienie obu nie jest konfliktem. Filtry słów kluczowych i linków AutoMod łapią rzeczy, których filtr oparty na tempie nigdy nie złapie, a filtr spamu per członek wychwytuje wzorce zalewania, których AutoMod nie jest zbudowany śledzić.

Częste pytania

Czy antyspam jest domyślnie włączony? Nie. Moduł Security jest domyślnie włączony, ale sam antyspam trzeba włączyć osobno, komendą /security antispam enabled:True albo w panelu.

Czy wycisza moderatora, który spamuje reakcjami albo szybkimi odpowiedziami? Nie, jeśli ma Administratora albo skonfigurowaną rolę admina. Dodaj zaufanych członków personelu do ról admina na stronie Roles w panelu, jeśli nie mają Administratora.

Czy usuwa wiadomości na każdym kanale, na którym członek pisał? Nie, tylko na kanale, na którym doszło do przekroczenia, i tylko do 10 ostatnich śledzonych wiadomości tam.

Jaka jest różnica między tym a anti-nuke? Antyspam pilnuje zwykłych członków wysyłających wiadomości. Anti-nuke pilnuje niszczących działań na poziomie adminów, jak masowe usuwanie kanałów lub ról. Konfiguruje się je osobno i mogą działać niezależnie; pełny opis drugiej połowy modułu bezpieczeństwa Noxyr znajdziesz w przewodniku po anti-nuke.

Czy mogę ustawić różne limity dla każdego kanału? Obecnie nie; limity obowiązują na całym serwerze, choć usuwanie dotyczy tylko kanału, na którym doszło do zrywu.

Antyspam to jeden przełącznik w darmowym module Security Noxyr, obok anti-nuke, weryfikacji i logów moderacji. Dodaj Noxyr za darmo i włącz go według dokumentacji bezpieczeństwa, albo przeczytaj pełną stronę funkcji bota bezpieczeństwa, żeby poznać wszystko, co obejmuje moduł.