Velocity limites და anthi abuse
1) რა არის velocity და რატომ არის ეს საჭირო
Velocity limites არის შეზღუდვები მოცემული დროის ფანჯრებისთვის ოპერაციების სიხშირეზე და მოცულობაზე. მიზანი:- შეამცირეთ პრემია და ექსპლუატაცია/პრომო,
- დაიცავით გადახდის ინფრასტრუქტურა „ქარიშხლისგან“,
- შეინარჩუნეთ ჯანსაღი კონვერტაცია საეჭვო მცდელობების გადასაცემად Challenge (3DS/SCA) ნაცვლად „მძიმე უარის თქმის“ ნაცვლად, სადაც ეს შესაძლებელია.
Velocity კონტროლერები ავსებენ მორიელს, AVS/CVV, 3DS2/SCA და smart-routing.
2) რა არის შეზღუდული (scopes)
დაპროექტეთ ლიმიტები ერთდროულად რამდენიმე დონეზე:- გადახდის ობიექტები: 'card _ token' (vault/ქსელი), 'bin', 'issuer', 'psp _ route'.
- მომხმარებლის: 'account _ id', 'kyc _ level', 'email/phone'.
- ტექნიკური: 'Device _ id' (fingerprint/SDK), 'ip', 'asn', 'session _ id'.
- ბიზნეს კონტექსტი: 'bonus _ id', 'campaign _ id', 'country', 'mcc 7995' ქვეტიპი (ანაბარი/გამომავალი).
- ფინანსური: 'amount _ bucket' (მიკრო/საშუალო/დიდი), 'currency', 'payment _ method'.
3) ფანჯრები და მრიცხველები
Fixed Window (T = 15m/1h/24h) მარტივია, მაგრამ მგრძნობიარეა საზღვრების მიმართ.
ფანჯრის ფანჯარა - უფრო სწორად, მიიჩნევს „მოცურების“ ინტერვალით.
Leaky bucket/Token bucket - აურზაური აურზაურია, განსაზღვრავს სტაბილურ გამტარუნარიანობას.
კომბინირებული: burst (მოკლე ასვლა) + sustained (გრძელი ნაკადი).
- 'Device _ id': 15 წუთში ავტორიზაციის 3 მცდელობა; 10 საათში 24 საათში.
- 'card _ token': ზედიზედ 2 decline 3DS; მესამე არის სავალდებულო 3DS.
- 'ip': 5 უნიკალური 'card _ token' 1 საათში (სხვაგვარად - ხაფანგი/ბლოკი).
- 'account _ id': ზედიზედ 2 გაუქმებული დეპოზიტი; შემდეგი - კულდუნი 1 საათი.
4) შეზღუდვების ალგორითმები (მოკლედ)
Token Bucket (საშუალებას აძლევს bursts):- წამოიწყეთ 'capacity' და 'refill _ rate'.
- ყოველი მცდელობამდე „ამოიღეთ“ 1 ნიშანი; თუ ტოქსენი არ არის, challenge/decline.
- რიგის გაჟონვა მუდმივი სიჩქარით; მომავალი მოვლენები წყდება - throttle.
- 1 გამეორება: 2-5 წუთი - მე -2: 10-20 წუთი - მე -3: 1-2 საათი - გაჩერება, ან ალტერნატიული მეთოდით თარგმნა.
5) გადაწყვეტილებების პოლიტიკა
კლასიფიკაცია velocity შემოწმების შედეგებზე:- ალოუ: დაბალი რისკი, ბარიერების ფარგლებში.
- გამოწვევა: გადააჭარბა „რბილ“ ბარიერს 3DS/SCA/capch/KBA (კითხვები).
- Throttle: დროებით შეზღუდვა (კულუარული) გამჭვირვალე UX- ით.
- Decline: უხეში დარღვევები (ბარათების მასიური გადანაწილება, ბოტის აუზები, ბონუს აბიუსი).
- Reroute: PSP/მეთოდის შეცვლა (მაგ., A2A) ემიტენტისთვის '91/96 ".
მაგალითების მინი მატრიცა
'Device _ id' მცდელობები 3 წუთში 15 წუთზე და 'cvv = N' 2 - Decline + capch.
'card _ token' 2 soft-decline ზედიზედ 3DS-challenge (სავალდებულო).
'ip' 5 უნიკალური 'account _ id' 30 წუთში - Throttle 30 წთ + KYC შემოწმება.
'account _ id' დეპოზიტის გამომავალი ანაბარი 10 წუთში (კარუსელი) Challenge ან ზღვარი ჯამში.
6) Velocity დეპოზიტების, რეპოზიტებისა და დასკვნებისთვის
დეპოზიტები:- დაიცავით მიკრო შევსება (მრავალი მცირე გარიგება): ოდენობისა და მთლიანი ბრუნვის ლიმიტი T- სთვის.
- მთელი რიგი '05 '/' 14 '/' 54' - შეაჩერეთ დეტალების „გადამოწმება“, თარგმნეთ 3DS.
- გადაიტანეთ CIT და MIT რიგები. გამოიყენეთ რბილი T + 1/T + 24h ფანჯრები MIT- ისთვის.
- Soft-decline 'SCA required' დაუყოვნებლივ 3DS, არ დაწვა მცდელობები.
- ცალკეული ლიმიტები ოდენობით/სიხშირით: მაგ., 2 გამომავალი/24h და N ჯამში/კვირაში.
- KYC „კიბე“: რაც უფრო მაღალია შემოწმება, მით უფრო მაღალია ლიმიტები.
- Circling District: სწრაფი ანაბარი და მყისიერი დასკვნა - მანუალური მიმოხილვა/hold.
7) ანტი აბიუსი პრომო და პრემია
Per-campaign caps: 'bonus _ id' X გააქტიურება 'device _ id '/' ip '/' payment _ fingerprint'.
„დანამატები“ (ანგარიშებს შორის ფულის გადარიცხვა): საერთო ბარათების/IP/მოწყობილობების გრაფიკული ანალიზი.
Cool-off windows: ბონუსის ანაბრის შემდეგ - მყისიერი დასკვნის აკრძალვა, გამჭვირვალე წესები ToS- ში.
სანქციები დონეზე: დროებითი საკეტებიდან „სამუდამოდ“, მიზეზების ჟურნალთან.
8) არქიტექტურა: სად უნდა იცხოვროს velocity წესები
ნამდვილი დროის კარიბჭე (ორკესტრში): გამოსავალი 50-100 ms.
მრიცხველების საცავი: in-memory (Redis/KeyDB) + გრძელვადიანი „მოხსენებები“ (DWH).
Ichestor: ერთი ფანჯარა/აგრეგატები (15 მ/1h/24h/7d).
Rule ძრავა + ML Scoring: „safety-net“ წესები მოდელის თავზე.
ჩამორთმევის დროშები: „ჩართეთ 3DS“, „უფრო მკაცრი X რეგიონში“, „პაუზა PSP-A“.
Idempotence: დუბლიკატებისგან დაცვა გამეორებების/ტაიმაუტების დროს.
9) წესების ფსევდო კოდი (ესკიზი)
pseudo on payment_attempt(ctx):
s = features(ctx) // device/ip/account/bin/score/avs/cvv/history if counter(device, 15m) >= 3 and cvv_fail(device, 15m) >= 2:
return DECLINE(reason="velocity_device_cvv")
if soft_declines(card_token, 1h) >= 2:
return CHALLENGE_3DS()
if uniq_accounts(ip, 30m) >= 5:
return THROTTLE(ttl=30m)
if score > T2 and velocity(account, 1h) > Vmax:
return DECLINE(reason="high_risk_burst")
return ALLOW
10) UX ნიმუშები (გატეხილი კონვერსიის გარეშე)
მკაფიო ცნობები: "მოკლე დროში ძალიან ბევრი მცდელობაა. შეეცადეთ 15 წუთის შემდეგ ან დაადასტუროთ ბანკში."
ღილაკი „გაიმეორე მოგვიანებით“ ტაიმერით.
ალტერნატივის შეთავაზება: A2A/ადგილობრივი საფულეები trottling.
Auto-3DS SCA-soft- ზე დეტალების ხელახლა შეყვანის გარეშე.
Capcha მხოლოდ წერტილოვანი (IP/ASN/bot სიგნალების მიხედვით), ყველასთვის არა.
11) შესაბამისობა და კონფიდენციალურობა
GDPR/PII: შეინახეთ მინიმალური იდენტიფიკატორები (მოწყობილობები, ბარათის ნიშნები, last4), გამჭვირვალე პოლიტიკოსები.
PCI DSS: არ არის PAN/CVV ლოგოებში; velocity მოვლენები მგრძნობიარე მონაცემების გარეშე.
PSD2/SCA: თარგმნეთ ჭარბი რაოდენობა იმ გამოწვევებზე, სადაც ეს მიზანშეწონილია, ტოტალური უკმარისობის ნაცვლად.
12) მეტრიკი, ალერტა, SLO
KPI:- Approval Rate (ზოგადი და წესების ამოქმედებისას).
- False Positive წესი velocity (გულწრფელი ბლოკების წილი შემდგომი ლეგიტიმურობის თვალსაზრისით).
- ჭიდაობის „ქარიშხლების“ რაოდენობა და საშუალო აღდგენის დრო.
- გადარიცხვების წილი decline - challenge- დან წარმატებული შედეგით.
- Chargeback სეგმენტები, სადაც ლიმიტები მუშაობდნენ (ველოდებით).
- Spike '05/14/54' + მცდელობების ზრდა> X 15 წუთში BIN/ASN კლასტერში.
- ასვლა '91/96' - ავტომობილების ზრდა T1 + Routing PSP-B- ში
- FP წესები> სამიზნე (მაგალითად, 1. 5 × ყოველკვირეული საშუალო).
- გადაწყვეტილება velocity 100 ms p95.
- 3DS- ში გადაცემული წარმატებული გადახდების წილი სამიზნეზე უარის თქმის ნაცვლად.
13) ანტი შაბლონები
უნივერსალური „ტოტალური“ ზღვარი ყველა ბაზრისა და ტიპის მომხმარებლისთვის.
დაბლოკეთ 'AVS = U/S/G' ქვეყნებში, სადაც AVS არ მუშაობს ნორმალურად.
არ გაიზიაროთ CIT/MIT - არღვევს გამოწერას/გამეორებას.
გადატვირთვა jitter- ის და idempotence- ის გარეშე არის დუბლირება და ქარიშხალი.
უარის თქმის მიზეზების დამალვა - იზრდება საფოსტო და ტოქსიკურობა.
14) განხორციელების სია
- ერთეულების რუკა (სკოპები) და ფანჯრები (15 მ/1h/24h/7d).
- ალგორითმების არჩევანი: sliding + token bucket bursts.
- რეაგირების ნორმალიზაცია: backoff + jitter, ცალკე CIT/MIT- ისთვის.
- ინტეგრაცია 3DS/SCA- სთან: ავტო-გამოწვევა რბილი ჭარბი რაოდენობით.
- ცალკეული ლიმიტები დასკვნებისა და პრემიებისთვის; კავშირის შემოწმების გრაფიკი.
- დაკვირვება: დაშბორდები KPI/ალერტები/წესების აუდიტი.
- UX შეტყობინებების შაბლონები და ალტერნატიული მეთოდები.
- PCI/GDPR პოლიტიკოსები: ნიშნები, შენიღბვა, PII მინიმიზაცია.
- A/B ტესტები ბარიერების ბაზარზე/BIN/ASN და მომხმარებელთა პროფილები.
- ინციდენტების ფლეიბუკი: ემიტენტის დეგრადაცია/PSP, ბოტების ზრდა.
15) რეზიუმე
ეფექტური velocity-limites არის მრავალ დონის ფანჯრები და მრიცხველები სხვადასხვა ერთეულების მიხედვით, ალგორითმები (token/leaky bucket), ჭკვიანი retrais და მჭიდრო კავშირი 3DS/SCA- სთან და მორიელთან. ასეთი წრე ამცირებს ფროიდს და აბუზს, არ აყენებს კონვერტაციას და ხელს უწყობს სტაბილური მონეტიზაციის შენარჩუნებას ემიტენტებისა და ტრაფიკის ცვალებადობით.