एक Discord anti spam बॉट देखता है कि कोई सदस्य कितनी तेज़ी से पोस्ट कर रहा है, क्या वह एक ही संदेश बार-बार भेज रहा है, और एक बार में कितने लोगों को मेंशन कर रहा है। जैसे ही कोई आपकी तय की हुई सीमा पार करता है, वह उसे अपने आप टाइमआउट कर देता है। अगर इसे अच्छे से सेट किया जाए, तो यह सेकंडों में raid बॉट और फ़्लडर्स को पकड़ लेता है, और उस सदस्य को नहीं छूता जो बस तेज़ी से बातचीत कर रहा है। यह गाइड बताती है कि स्पैम में क्या गिना जाता है, Noxyr की सीमाएं और टाइमआउट अंदर से कैसे काम करते हैं, और उन्हें कैसे ट्यून करें ताकि असली सदस्य कभी न पकड़े जाएं।

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

स्पैम में क्या गिना जाता है?

ज़्यादातर anti spam Discord सेटअप तीन अलग-अलग पैटर्न देखते हैं, और इनमें से कोई भी एक अकेला जवाब ट्रिगर कर सकता है:

  • संदेश की दर: एक छोटे समय के अंदर एक व्यक्ति के बहुत सारे संदेश। यह copy-paste फ़्लडिंग और स्क्रिप्ट वाले raid अकाउंट को पकड़ता है।
  • डुप्लिकेट सामग्री: बार-बार भेजा गया वही संदेश (या लगभग वही)। यह "जॉइन करो और पाँच चैनलों में एक ही scam लिंक चिपका दो" वाले पैटर्न को पकड़ता है।
  • बड़े पैमाने पर मेंशन: एक ही संदेश जो सामान्य संदेश से कहीं ज़्यादा यूज़र या रोल को पिंग करे, जिसमें @everyone और @here भी शामिल हैं।

किसी सदस्य को तीनों में से सिर्फ़ एक पैटर्न पार करना होता है। कोई व्यक्ति जो लगातार छह सामान्य संदेश भेजता है, लेकिन कभी सामग्री नहीं दोहराता और किसी को मेंशन नहीं करता, वह पूरी तरह अछूता रहता है।

Noxyr की anti-spam सीमाएं और टाइमआउट कैसे काम करते हैं

Noxyr हर सदस्य के लिए, हर सर्वर में, एक रोलिंग विंडो ट्रैक करता है। उस सदस्य का हर संदेश जो विंडो के अंदर भेजा जाता है, उस विंडो में जुड़ जाता है; विंडो की लंबाई से पुरानी हर चीज़ अपने आप हट जाती है। हर नए संदेश पर इस विंडो के खिलाफ तीन जाँचें चलती हैं:

  • अधिकतम संदेश / विंडो: अगर सदस्य ने विंडो के अंदर तय संख्या से ज़्यादा संदेश भेजे हैं (डिफ़ॉल्ट: 8 सेकंड में 6 से ज़्यादा), तो यह दर-ट्रिप है।
  • डुप्लिकेट सीमा: तुलना से पहले सामग्री को trim किया जाता है, lowercase किया जाता है और अतिरिक्त whitespace हटाया जाता है, इसलिए "Hello!!" और "hello!!" एक ही संदेश माने जाते हैं। जब विंडो के अंदर इतने डुप्लिकेट आ जाएं (डिफ़ॉल्ट: 4), तो यह ट्रिप है।
  • मेंशन सीमा: Noxyr संदेश में मेंशन किए गए यूज़र और रोल गिनता है। अगर संदेश @everyone या @here को पिंग करता है, तो उस गिनती में 100 जुड़ जाते हैं, जिससे आपकी सेट की हुई सीमा चाहे जो भी हो, ट्रिप पक्का हो जाता है, क्योंकि कोई भी मेंशन सीमा इतनी ऊँची नहीं रखता।

जो पहली जाँच ट्रिप होती है, वही प्रतिक्रिया चलाती है; बॉट यह देखने के लिए इंतज़ार नहीं करता कि दूसरी भी ट्रिप होगी या नहीं। जब ऐसा होता है, तो आपकी सेटिंग्स के हिसाब से दो चीज़ें हो सकती हैं:

  • टाइमआउट: सदस्य को तय मिनटों के लिए टाइमआउट किया जाता है (डिफ़ॉल्ट 10 मिनट, कमांड से 7 दिन तक, और Discord की 28 दिन की अधिकतम सीमा तक)। यह तभी होता है जब बॉट का रोल उस सदस्य के रोल से ऊपर हो, जैसे किसी भी दूसरी मॉडरेशन कार्रवाई में।
  • संदेश हटाना: अगर चालू है (डिफ़ॉल्ट रूप से चालू), तो बॉट उस चैनल में, जहां ट्रिप हुआ, उस सदस्य के ट्रैक किए गए आख़िरी 10 संदेश तक हटा देता है। वह उसी बौछार के दौरान दूसरे चैनलों में भेजे गए संदेशों का पीछा नहीं करता।

ट्रिप के बाद, उस सदस्य की विंडो खाली हो जाती है, इसलिए एक ही बौछार पर केवल एक कार्रवाई होती है, न कि सीमा से ऊपर हर संदेश पर एक।

इसे कॉन्फ़िगर करना

ऊपर की सब बातें /security antispam से या डैशबोर्ड के Security पेज से सेट होती हैं:

  • enabled: anti-spam डिफ़ॉल्ट रूप से बंद होता है, भले ही Security मॉड्यूल खुद चालू हो। इसलिए मॉड्यूल चालू करने से कोई अचानक मॉडरेट होना शुरू नहीं होता।
  • max_messages और window_seconds: दर सीमा और विंडो कितनी लंबी है।
  • duplicate_limit: कितनी बार दोहराए जाने पर उसे स्पैम माना जाए।
  • mention_limit: एक संदेश में कितने पिंग हों तो उसे बड़े पैमाने का मेंशन माना जाए।
  • timeout_minutes: टाइमआउट कितनी देर का रहता है।
  • delete_messages: स्पैम को भी साफ़ किया जाए या नहीं।

/security status एक ही embed में anti-spam और anti-nuke दोनों के मौजूदा नंबर दिखाता है। कुछ बदलने से पहले यह जांचने का सबसे तेज़ तरीका है कि असल में क्या लागू है।

गलत पहचान से बचना

जो spam फ़िल्टर असली सदस्यों को टाइमआउट करता है, वह लोगों को सर्वर छोड़ना सिखा देता है। कुछ बातें इसे होने से रोकती हैं:

  • एडमिन अपने आप छूट में होते हैं। जिसके पास Administrator अनुमति है, या जिसे आपने डैशबोर्ड पर admin रोल के रूप में जोड़ा है, उसे पूरी तरह छोड़ दिया जाता है। स्टाफ़ द्वारा पोस्ट की गई घोषणाएं और giveaway पिंग कभी मेंशन सीमा ट्रिप नहीं करतीं।
  • बॉट और webhook के संदेशों की जाँच कभी नहीं होती। Anti-spam जाँच तक केवल इंसानों के संदेश पहुंचते हैं, इसलिए किसी log चैनल में घोषणा webhook या दूसरे बॉट का तेज़ी से पोस्ट करना कोई समस्या नहीं है।
  • संख्या बढ़ाने से पहले विंडो बढ़ाएं। अगर किसी व्यस्त general चैनल में तेज़ लिखने वाले लोग दर सीमा के करीब पहुंच रहे हैं, तो window_seconds को थोड़ा बढ़ाना (जैसे 8 से 12) आम तौर पर max_messages बढ़ाने से नरम तरीका है। इससे सामान्य बातचीत को ज़्यादा जगह मिलती है, और असली बौछार के लिए दरवाज़ा बहुत ज़्यादा नहीं खुलता।
  • template वाली सामग्री के आसपास duplicate_limit पर नज़र रखें। जो समुदाय copy-paste templates इस्तेमाल करते हैं (LFG पोस्ट, ticket macros, application के जवाब), वे duplicate जाँच से टकरा सकते हैं। Duplicate पहचान को पूरी तरह बंद करने के बजाय सीमा थोड़ी बढ़ा दें।
  • ट्यून करते समय delete_messages बंद करें। हटाना बंद होने पर स्पैम को फिर भी टाइमआउट मिलता है, लेकिन संदेश दिखते रहते हैं। इससे यह देखना आसान हो जाता है कि फ़िल्टर को असल में क्या ट्रिप किया, और असली सबूत के साथ संख्याएं बदली जा सकती हैं।
  • अभी anti-spam ट्रिप के लिए कोई alert embed नहीं भेजा जाता, जैसा anti-nuke करता है। Discord का अपना audit log फिर भी बॉट द्वारा लगाए गए हर टाइमआउट को दर्ज करता है, इसलिए जो हुआ उसे देखने के लिए वहां जाएं (या मौजूदा सेटिंग्स के लिए /security status)।

Discord anti spam बॉट बनाम Discord का अपना AutoMod

Discord का नेटिव AutoMod स्पैम जैसे लिंक या चिह्नित कीवर्ड वाले संदेश ब्लॉक कर सकता है, और उसका अपना mention-spam नियम भी है, जिन्हें सब Server Settings में सेट किया जाता है। यह सच में उपयोगी है और इसे चालू करने का कोई खर्च नहीं है। समर्पित anti spam Discord बॉट से यह कहां कम पड़ता है: हर सुरक्षा एक अलग नियम है जिसे आपको नियम संपादक में एक-एक करके बनाना होता है, और इनमें से कोई भी संदेशों के बीच किसी सदस्य के समग्र व्यवहार को उस तरह ट्रैक नहीं करता जैसे प्रति-सदस्य रोलिंग विंडो करती है। AutoMod किसी एक संदेश पर अलग से प्रतिक्रिया देता है; उसमें "इस व्यक्ति ने आठ सेकंड में छह संदेश भेजे" या "इस मिनट में यही संदेश चौथी बार आया है" जैसी कोई मूल अवधारणा नहीं है।

Noxyr जैसा बॉट-आधारित फ़िल्टर दर सीमा, डुप्लिकेट पहचान और मेंशन सीमा को एक ही स्विच के पीछे रखता है, हर जगह एक जैसी एडमिन छूट लागू करता है, और आपको एक ही जगह (डैशबोर्ड या /security status) देता है जहां आप हर संख्या एक साथ देख और बदल सकते हैं, न कि स्वतंत्र नियमों के ढेर में। दोनों को साथ चलाने से टकराव नहीं होता। AutoMod के कीवर्ड और लिंक फ़िल्टर ऐसी चीज़ें पकड़ते हैं जो दर-आधारित फ़िल्टर कभी नहीं पकड़ेगा, और प्रति-सदस्य spam फ़िल्टर उन बौछार पैटर्न को पकड़ता है जिन्हें AutoMod ट्रैक करने के लिए नहीं बना।

आम सवाल

क्या anti-spam डिफ़ॉल्ट रूप से चालू है? नहीं। Security मॉड्यूल डिफ़ॉल्ट रूप से चालू है, लेकिन anti-spam को अलग से /security antispam enabled:True से या डैशबोर्ड से चालू करना होगा।

क्या यह स्पैम कर रहे मॉडरेटर को टाइमआउट कर देगा जो बहुत तेज़ reactions या जवाब दे रहा है? अगर उसके पास Administrator या कोई कॉन्फ़िगर किया गया admin रोल है, तो नहीं। अगर भरोसेमंद स्टाफ़ के पास Administrator नहीं है, तो डैशबोर्ड के Roles पेज से उन्हें admin रोल में जोड़ें।

क्या यह उस सदस्य के पोस्ट किए गए हर चैनल से संदेश हटाता है? नहीं, केवल उसी चैनल से जहां ट्रिप हुआ, और वहां भी केवल ट्रैक किए गए आख़िरी 10 संदेशों तक।

इसमें और anti-nuke में क्या फ़र्क है? Anti-spam सामान्य सदस्यों के संदेश भेजने पर नज़र रखता है। Anti-nuke एडमिन-स्तर की विनाशकारी कार्रवाइयों पर नज़र रखता है, जैसे बड़े पैमाने पर चैनल या रोल डिलीट। ये अलग से सेट होते हैं और स्वतंत्र रूप से चल सकते हैं; Noxyr के security मॉड्यूल के दूसरे हिस्से के लिए पूरी anti-nuke गाइड देखें।

क्या मैं हर चैनल के लिए अलग सीमाएं सेट कर सकता हूँ? अभी नहीं; सीमाएं पूरे सर्वर पर लागू होती हैं, हालांकि हटाना केवल उसी चैनल को छूता है जहां बौछार हुई।

Anti-spam Noxyr के मुफ़्त Security मॉड्यूल में एक टॉगल है, जिसमें anti-nuke, verification और मॉडरेशन लॉग भी शामिल हैं। Noxyr मुफ़्त जोड़ें और security docs से इसे चालू करें, या मॉड्यूल में जो कुछ शामिल है उसके लिए पूरा security bot feature page पढ़ें।