जिस दिन हमने अपनी साइनअप पाइपलाइन ठीक की
हमारे साइनअप नंबर हर हफ्ते बढ़ रहे थे। टीम उत्साहित थी। लेकिन डेटा कुछ गलत लग रहा था। यूजर्स कभी वापस नहीं आए। ईमेल एड्रेस अजीब लग रहे थे। हमारी एक्टिवेशन दर (activation rate) गिर गई थी।
मैंने डेटा देखा। मुझे विकास (growth) नहीं मिला। मुझे शोर (noise) मिला।
समस्या
मैंने IP एड्रेस के आधार पर साइनअप को ग्रुप करने के लिए एक क्वेरी चलाई। एक ही IP एड्रेस ने 24 घंटों में सैकड़ों अकाउंट रजिस्टर किए। इसने एक ही ब्राउज़र फिंगरप्रिंट का उपयोग किया था। एक स्क्रिप्ट हमारे register endpoint पर हिट कर रही थी। यह throwaway ईमेल डोमेन का उपयोग कर रही थी। यह एक बॉट था, कोई इंसान नहीं।
हमारी साइनअप पाइपलाइन पूरी तरह खुली हुई थी।
समाधान
हमने एक ही स्प्रिंट में सुरक्षा की तीन परतें (layers) बनाईं।
लेयर 1: थ्रॉटलिंग (Throttling)
हमने दो प्रकार की रेट लिमिटिंग (rate limiting) का उपयोग किया।
- प्रति-IP थ्रॉटलिंग: हम एक छोटे समय अंतराल (short window) में एक IP से साइनअप के प्रयासों को सीमित करते हैं।
- प्रति-डोमेन थ्रॉटलिंग: हम एक लंबे समय अंतराल में एक ही ईमेल डोमेन से साइनअप को सीमित करते हैं। यह एक ही डोमेन के साथ अलग-अलग IP का उपयोग करने वाले बॉट्स को रोकता है।
लेयर 2: ब्लॉकलिस्ट (Blocklists)
- ब्लॉक किए गए ईमेल डोमेन: हम डिस्पोजेबल (disposable) ईमेल डोमेन का उपयोग करने वाले किसी भी रजिस्ट्रेशन को अस्वीकार कर देते हैं।
- ब्लॉक किए गए यूजर एजेंट: हम नॉन-ब्राउज़र टूल्स से आने वाली रिक्वेस्ट को अस्वीकार कर देते हैं। हम हमलावर को कोई विवरण नहीं देते हैं।
लेयर 3: IP ब्लॉकलिस्ट
कुछ IP लगातार हमला करते हैं। वे हमारे सिस्टम के कई हिस्सों का दुरुपयोग करते हैं। हम एक हार्ड ब्लॉकलिस्ट का उपयोग करते हैं। इन IP को हर रिक्वेस्ट के लिए रिजेक्ट कर दिया जाता है। मिडलवेयर (middleware) उन्हें तुरंत रोक देता है।
परिणाम
सुधार से पहले:
- एक IP ने एक दिन में सैकड़ों अकाउंट बनाए।
- अधिकांश साइनअप डिस्पोजेबल डोमेन से थे।
- फर्जी अकाउंट्स ने हमारी एक्टिवेशन दर को कम कर दिया।
- हमारा डेटा गलत था।
सुधार के बाद:
- रजिस्ट्रेशन फार्मिंग (Registration farming) शून्य हो गई।
- डिस्पोजेबल डोमेन साइनअप बंद हो गए।
- साइनअप नंबरों ने वास्तविक मानवीय इरादे (human intent) को दिखाया।
- हमारी एक्टिवेशन दर वापस सामान्य हो गई।
सीखे गए सबक
- वॉल्यूम से ज्यादा सिग्नल मायने रखता है। बॉट्स रिटेंशन और रेवेन्यू जैसे मेट्रिक्स को अविश्वसनीय बना देते हैं।
- छोटे कोड फिक्स बड़ी समस्याओं को हल करते हैं। हमने तीन सरल तंत्रों (mechanisms) का उपयोग किया।
- परतें (Layers) आवश्यक हैं। एक सीमा पर्याप्त नहीं है। संयोजनों (combinations) से अधिक कवरेज मिलता है।
- अपनी प्रतिक्रियाओं (responses) को नियंत्रित करें। वैध उपयोगकर्ताओं को फीडबैक दें। बुरे इरादे रखने वालों को चुप्पी दें।
ग्रोथ का मतलब सिर्फ यूजर्स पाना नहीं है। इसका मतलब असली यूजर्स पाना है। आपके प्रोडक्ट के निर्णय अच्छे डेटा पर निर्भर करते हैं। वह डेटा आपके रजिस्ट्रेशन एंडपॉइंट (registration endpoint) से शुरू होता है।
स्रोत: https://dev.to/ogeobubu/the-day-we-fixed-our-signup-pipeline-3664