𝗧𝗵𝗲 𝗗𝗮𝘆 𝗪𝗲 𝗙𝗶𝘅𝗲𝗱 𝗢𝘂𝗿 𝗦𝗶𝗴𝗻𝘂𝗽 𝗣𝗶𝗽𝗲𝗹𝗶𝗻𝗲

ਸਾਡੇ ਸਾਈਨਅੱਪ ਦੇ ਅੰਕੜੇ ਹਰ ਹਫ਼ਤੇ ਵਧ ਰਹੇ ਸਨ। ਟੀਮ ਉਤਸ਼ਾਹਿਤ ਸੀ। ਪਰ ਡੇਟਾ ਕੁਝ ਗਲਤ ਲੱਗ ਰਿਹਾ ਸੀ। ਯੂਜ਼ਰਜ਼ ਕਦੇ ਵਾਪਸ ਨਹੀਂ ਆਉਂਦੇ ਸਨ। ਈਮੇਲ ਐਡਰੈੱਸ ਅਜੀਬ ਲੱਗ ਰਹੇ ਸਨ। ਸਾਡਾ ਐਕਟੀਵੇਸ਼ਨ ਰੇਟ (activation rate) ਡਿੱਗ ਗਿਆ ਸੀ।

ਮੈਂ ਡੇਟਾ ਦੀ ਜਾਂਚ ਕੀਤੀ। ਮੈਨੂੰ ਵਿਕਾਸ (growth) ਨਹੀਂ ਮਿਲਿਆ। ਮੈਨੂੰ ਸਿਰਫ਼ ਸ਼ੋਰ (noise) ਮਿਲਿਆ।

The Problem

ਮੈਂ IP ਐਡਰੈੱਸ ਅਨੁਸਾਰ ਸਾਈਨਅੱਪਸ ਨੂੰ ਗਰੁੱਪ ਕਰਨ ਲਈ ਇੱਕ ਕੁਐਰੀ (query) ਚਲਾਈ। ਇੱਕ IP ਐਡਰੈੱਸ ਨੇ 24 ਘੰਟਿਆਂ ਵਿੱਚ ਸੈਂਕੜੇ ਖਾਤੇ ਰਜਿਸਟਰ ਕੀਤੇ। ਇਹ ਇੱਕੋ ਬ੍ਰਾਊਜ਼ਰ ਫਿੰਗਰਪ੍ਰਿੰਟ (browser fingerprint) ਦੀ ਵਰਤੋਂ ਕਰ ਰਿਹਾ ਸੀ। ਇੱਕ ਸਕ੍ਰਿਪਟ ਸਾਡੇ ਰਜਿਸਟਰ ਐਂਡਪੁਆਇੰਟ (register endpoint) 'ਤੇ ਹਮਲਾ ਕਰ ਰਹੀ ਸੀ। ਇਹ ਥਰੋਅਵੇਅ (throwaway) ਈਮੇਲ ਡੋਮੇਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਰਹੀ ਸੀ। ਇਹ ਇੱਕ ਬੋਟ (bot) ਸੀ, ਕੋਈ ਇਨਸਾਨ ਨਹੀਂ।

ਸਾਡੀ ਸਾਈਨਅੱਪ ਪਾਈਪਲਾਈਨ ਪੂਰੀ ਤਰ੍ਹਾਂ ਖੁੱਲ੍ਹੀ ਹੋਈ ਸੀ।

The Solution

ਅਸੀਂ ਇੱਕ ਸਪ੍ਰਿੰਟ (sprint) ਵਿੱਚ ਸੁਰੱਖਿਆ ਦੀਆਂ ਤਿੰਨ ਪਰਤਾਂ (layers) ਤਿਆਰ ਕੀਤੀਆਂ।

Layer 1: Throttling

ਅਸੀਂ ਦੋ ਤਰ੍ਹਾਂ ਦੀ ਰੇਟ ਲਿਮਿਟਿੰਗ (rate limiting) ਦੀ ਵਰਤੋਂ ਕੀਤੀ।

Layer 2: Blocklists

Layer 3: IP Blocklist

ਕੁਝ IP ਲਗਾਤਾਰ ਹਮਲੇ ਕਰਦੇ ਹਨ। ਉਹ ਸਾਡੇ ਸਿਸਟਮ ਦੇ ਕਈ ਹਿੱਸਿਆਂ ਦੀ ਦੁਰਵਰਤੋਂ ਕਰਦੇ ਹਨ। ਅਸੀਂ ਇੱਕ ਹਾਰਡ ਬਲੌਕਲਿਸਟ (hard blocklist) ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ। ਇਹਨਾਂ IP ਨੂੰ ਹਰ ਬੇਨਤੀ ਲਈ ਰੱਦ ਕਰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਮਿਡਲਵੇਅਰ (middleware) ਉਹਨਾਂ ਨੂੰ ਤੁਰੰਤ ਰੋਕ ਦਿੰਦਾ ਹੈ।

The Results

ਸੁਧਾਰ ਤੋਂ ਪਹਿਲਾਂ:

ਸੁਧਾਰ ਤੋਂ ਬਾਅਦ:

Lessons Learned

ਵਿਕਾਸ (Growth) ਸਿਰਫ਼ ਯੂਜ਼ਰਜ਼ ਪ੍ਰਾਪਤ ਕਰਨ ਬਾਰੇ ਨਹੀਂ ਹੈ। ਇਹ ਅਸਲੀ ਯੂਜ਼ਰਜ਼ ਪ੍ਰਾਪਤ ਕਰਨ ਬਾਰੇ ਹੈ। ਤੁਹਾਡੇ ਉਤਪਾਦ ਦੇ ਫੈਸਲੇ ਚੰਗੇ ਡੇਟਾ 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹਨ। ਉਹ ਡੇਟਾ ਤੁਹਾਡੇ ਰਜਿਸਟ੍ਰੇਸ਼ਨ ਐਂਡਪੁਆਇੰਟ ਤੋਂ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ।

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