ഞങ്ങളുടെ സൈൻഅപ്പ് പൈപ്പ്‌ലൈൻ ഞങ്ങൾ ശരിയാക്കിയ ദിവസം

ഞങ്ങളുടെ സൈൻഅപ്പ് കണക്കുകൾ ഓരോ ആഴ്‌ചയും വർദ്ധിച്ചുകൊണ്ടിരുന്നു. ടീം ആവേശത്തിലായിരുന്നു. എന്നാൽ ഡാറ്റയിൽ എന്തോ പിശക് ഉള്ളതായി തോന്നി. ഉപയോക്താക്കൾ ഒരിക്കലും തിരിച്ചുവരുന്നില്ലായിരുന്നു. ഇമെയിൽ വിലാസങ്ങൾ വിചിത്രമായിരുന്നു. ഞങ്ങളുടെ ആക്ടിവേഷൻ നിരക്ക് കുറഞ്ഞു.

ഞാൻ ഡാറ്റ പരിശോധിച്ചു. എനിക്ക് വളർച്ചയല്ല, മറിച്ച് അനാവശ്യമായ വിവരങ്ങൾ (noise) മാത്രമാണ് ലഭിച്ചത്.

പ്രശ്നം

ഐപി (IP) അഡ്രസ്സ് അനുസരിച്ച് സൈൻഅപ്പുകളെ ഗ്രൂപ്പ് ചെയ്യാൻ ഞാൻ ഒരു ക്വറി (query) റൺ ചെയ്തു. ഒരു ഐപി അഡ്രസ്സിൽ നിന്ന് 24 മണിക്കൂറിനുള്ളിൽ നൂറുകണക്കിന് അക്കൗണ്ടുകൾ രജിസ്റ്റർ ചെയ്തിരുന്നു. അത് ഒരേ ബ്രൗസർ ഫിംഗർപ്രിന്റ് (browser fingerprint) ആണ് ഉപയോഗിച്ചിരുന്നത്. ഒരു സ്ക്രിപ്റ്റ് ഞങ്ങളുടെ രജിസ്റ്റർ എൻഡ്പോയിന്റിലേക്ക് (register endpoint) നിരന്തരം സന്ദേശങ്ങൾ അയക്കുന്നുണ്ടായിരുന്നു. അത് താൽക്കാലിക ഇമെയിൽ ഡൊമെയ്‌നുകൾ (throwaway email domains) ഉപയോഗിച്ചിരുന്നു. അതൊരു മനുഷ്യനായിരുന്നില്ല, മറിച്ച് ഒരു ബോട്ട് (bot) ആയിരുന്നു.

ഞങ്ങളുടെ സൈൻഅപ്പ് പൈപ്പ്‌ലൈൻ പൂർണ്ണമായും തുറന്നുകിടക്കുകയായിരുന്നു.

പരിഹാരം

ഒരു സ്പ്രിന്റിനുള്ളിൽ (sprint) ഞങ്ങൾ മൂന്ന് തട്ടുകളിലുള്ള സംരക്ഷണം നിർമ്മിച്ചു.

ലെയർ 1: ത്രോട്ട്ലിംഗ് (Throttling)

ഞങ്ങൾ രണ്ട് തരത്തിലുള്ള റേറ്റ് ലിമിറ്റിംഗ് (rate limiting) രീതികൾ ഉപയോഗിച്ചു.

ലെയർ 2: ബ്ലോക്ക്‌ലിസ്റ്റുകൾ (Blocklists)

ലെയർ 3: ഐപി ബ്ലോക്ക്‌ലിസ്റ്റ് (IP Blocklist)

ചില ഐപി അഡ്രസ്സുകൾ നിരന്തരം ആക്രമണം തുടരുന്നു. അവ ഞങ്ങളുടെ സിസ്റ്റത്തിന്റെ പല ഭാഗങ്ങളും ദുരുപയോഗം ചെയ്യുന്നു. ഇതിനായി ഞങ്ങൾ ഒരു ഹാർഡ് ബ്ലോക്ക്‌ലിസ്റ്റ് (hard blocklist) ഉപയോഗിക്കുന്നു. ഈ ഐപികളിൽ നിന്നുള്ള എല്ലാ അഭ്യർത്ഥനകളും നിരസിക്കപ്പെടുന്നു. മിഡിൽവെയർ (middleware) അവയെ ഉടൻ തന്നെ തടയുന്നു.

ഫലങ്ങൾ

പരിഹാരത്തിന് മുമ്പ്:

പരിഹാരത്തിന് ശേഷം:

പഠിച്ച പാഠങ്ങൾ

വളർച്ച എന്നാൽ ഉപയോക്താക്കളെ നേടുക എന്നത് മാത്രമല്ല. യഥാർത്ഥ ഉപയോക്താക്കളെ നേടുക എന്നതാണ്. നിങ്ങളുടെ ഉൽപ്പന്ന സംബന്ധമായ തീരുമാനങ്ങൾ കൃത്യമായ ഡാറ്റയെ ആശ്രയിച്ചിരിക്കുന്നു. ആ ഡാറ്റ തുടങ്ങുന്നത് നിങ്ങളുടെ രജിസ്ട്രേഷൻ എൻഡ്പോയിന്റിൽ നിന്നാണ്.

Source: https://dev.to/ogeobubu/the-day-we-fixed-our-signup-pipeline-3664