જે દિવસે અમે અમારી સાઇનઅપ પાઇપલાઇન સુધારી
અમારી સાઇનઅપ સંખ્યા દર અઠવાડિયે વધી રહી હતી. ટીમ ઉત્સાહિત હતી. પરંતુ ડેટામાં કંઈક ખોટું લાગતું હતું. વપરાશકર્તાઓ ક્યારેય પાછા નહોતા આવતા. ઈમેલ એડ્રેસ વિચિત્ર લાગતા હતા. અમારી એક્ટિવેશન રેટ (activation rate) ઘટી ગઈ હતી.
મેં ડેટા તપાસ્યો. મને વૃદ્ધિ (growth) જોવા મળી નહીં. મને માત્ર ઘોંઘાટ (noise) મળ્યો.
સમસ્યા
મેં IP એડ્રેસ દ્વારા સાઇનઅપ્સને ગ્રુપ કરવા માટે ક્વેરી (query) ચલાવી. એક જ IP એડ્રેસ પરથી 24 કલાકમાં સેંકડો એકાઉન્ટ્સ રજિસ્ટર થયા હતા. તે એક જ બ્રાઉઝર ફિંગરપ્રિન્ટનો ઉપયોગ કરી રહ્યું હતું. એક સ્ક્રિપ્ટ અમારા રજિસ્ટર એન્ડપોઇન્ટ (register endpoint) પર હિટ કરી રહી હતી. તે ડિસ્પોઝેબલ (throwaway) ઈમેલ ડોમેનનો ઉપયોગ કરી રહી હતી. તે એક બોટ (bot) હતો, વ્યક્તિ નહીં.
અમારી સાઇનઅપ પાઇપલાઇન ખુલ્લી પડી હતી.
ઉકેલ
અમે એક જ સ્પ્રિન્ટમાં સુરક્ષાના ત્રણ સ્તરો બનાવ્યા.
લેયર 1: થ્રોટલિંગ (Throttling)
અમે બે પ્રકારની રેટ લિમિટિંગ (rate limiting) નો ઉપયોગ કર્યો.
- પ્રતિ-IP થ્રોટલિંગ: અમે ટૂંકા સમયગાળામાં એક IP પરથી થતા સાઇનઅપ પ્રયાસોને મર્યાદિત કરીએ છીએ.
- પ્રતિ-ડોમેન થ્રોટલિંગ: અમે લાંબા સમયગાળામાં સમાન ઈમેલ ડોમેન પરથી થતા સાઇનઅપ્સને મર્યાદિત કરીએ છીએ. આ એક જ ડોમેન સાથે અલગ-અલગ IP નો ઉપયોગ કરતા બોટ્સને અટકાવે છે.
લેયર 2: બ્લોકલિસ્ટ્સ (Blocklists)
- બ્લોક કરેલા ઈમેલ ડોમેન: અમે ડિસ્પોઝેબલ ઈમેલ ડોમેનનો ઉપયોગ કરીને કરવામાં આવતા કોઈપણ રજિસ્ટ્રેશનને નકારીએ છીએ.
- બ્લોક કરેલા યુઝર એજન્ટ્સ: અમે બિન-બ્રાઉઝર ટૂલ્સમાંથી આવતી વિનંતીઓને નકારીએ છીએ. અમે હુમલાખોરને કોઈ વિગતો આપતા નથી.
લેયર 3: IP બ્લોકલિસ્ટ
કેટલાક IP સતત હુમલો કરતા રહે છે. તેઓ અમારી સિસ્ટમના અનેક ભાગોનો દુરુપયોગ કરે છે. અમે હાર્ડ બ્લોકલિસ્ટનો ઉપયોગ કરીએ છીએ. આ IP પરથી આવતી દરેક વિનંતીને નકારી દેવામાં આવે છે. મિડલવેર (middleware) તેમને તરત જ અટકાવે છે.
પરિણામો
સુધારા પહેલા:
- એક IP એ એક દિવસમાં સેંકડો એકાઉન્ટ્સ બનાવ્યા હતા.
- મોટાભાગના સાઇનઅપ્સ ડિસ્પોઝેબલ ડોમેન દ્વારા કરવામાં આવ્યા હતા.
- નકલી એકાઉન્ટ્સને કારણે અમારી એક્ટિવેશન રેટ ઘટી ગઈ હતી.
- અમારો ડેટા ખોટો હતો.
સુધારા પછી:
- રજિસ્ટ્રેશન ફાર્મિંગ શૂન્ય થઈ ગયું.
- ડિસ્પોઝેબલ ડોમેન સાઇનઅપ્સ બંધ થઈ ગયા.
- સાઇનઅપ સંખ્યાઓ સાચા માનવીય ઈરાદા દર્શાવતી હતી.
- અમારી એક્ટિવેશન રેટ પાછી આવી ગઈ.
શીખવા મળેલા પાઠ
- વોલ્યુમ કરતાં સિગ્નલ વધુ મહત્વનું છે. બોટ્સ રિટન્શન (retention) અને રેવન્યુ (revenue) જેવા મેટ્રિક્સને અવિશ્વસનીય બનાવે છે.
- નાના કોડ ફિક્સ મોટી સમસ્યાઓ ઉકેલે છે. અમે ત્રણ સરળ પદ્ધતિઓનો ઉપયોગ કર્યો.
- સ્તરો (Layers) જરૂરી છે. એક મર્યાદા પૂરતી નથી. સંયોજન વધુ વ્યાપક સુરક્ષા આપે છે.
- તમારા પ્રતિભાવો પર નિયંત્રણ રાખો. કાયદેસરના વપરાશકર્તાઓને ફીડબેક આપો. ખરાબ ઈરાદા ધરાવતા લોકો માટે મૌન રહો.
વૃદ્ધિ એટલે માત્ર વપરાશકર્તાઓ મેળવવાનો જ નથી. તે સાચા વપરાશકર્તાઓ મેળવવા વિશે છે. તમારા પ્રોડક્ટના નિર્ણયો સારા ડેટા પર આધારિત છે. તે ડેટા તમારા રજિસ્ટ્રેશન એન્ડપોઇન્ટથી શરૂ થાય છે.
સ્ત્રોત: https://dev.to/ogeobubu/the-day-we-fixed-our-signup-pipeline-3664