Asosiy kontentga o’tish

Rate limit nimani sanaydi

«Bizda so’rovlar cheklangan» degan gap yarim javob. Asosiy savol boshqacha: cheklov nimani kalit qilib oladi va o’sha kalitni almashtirish hujumchiga qanchaga tushadi?

WAF / ADR
/
2026-05-14
/
4 daqiqa o’qishga

Kalit — bu cheklovning o’zagi

Har qanday rate limit uchta narsadan iborat: kalit, oyna va chegara. Kalit — so’rovlarni kim nomidan sanashimiz. Ko’pchilik faqat oyna va chegarani sozlaydi, kalit esa sukut bo’yicha qoladi.

Sukut bo’yicha kalit odatda IP manzil bo’ladi. Bu eng oson variant, chunki u har doim mavjud va hech qanday ilova mantig’i talab qilmaydi.

Va aynan shuning uchun u eng zaif variant: hujumchi uchun IP almashtirish arzon, sizning haqiqiy foydalanuvchilaringiz uchun esa IP ko’pincha umumiy.

IP bo’yicha cheklashning ikki xatosi

Birinchi xato — yolg’on ijobiy. Mobil operatorning NAT manzili ortida minglab abonent turadi. Ular uchun umumiy chegara qo’yilsa, oddiy foydalanuvchi ham hech narsa qilmasdan bloklanadi.

Ikkinchi xato — yolg’on salbiy. Zamonaviy hujumda so’rovlar minglab uy proksilaridan keladi va har bir manzildan sekundiga bir-ikkita so’rov chiqadi. Har bir manzil alohida chegaradan pastda qoladi, umumiy oqim esa xizmatni yiqitadi.

Ikkala xato ham bitta sababdan kelib chiqadi: IP manzil hujumchiga tegishli emas, u tarmoqqa tegishli. Siz nazorat qilmoqchi bo’lgan narsa esa xatti-harakat.

Sxema 1Kalit qanchalik pastda bo’lsa, uni almashtirish shunchalik arzon. Hisob identifikatori eng qimmat kalit — shuning uchun cheklovni birinchi navbatda unga bog’lash kerak.

To’g’ri kalitlar iyerarxiyasi

Amalda kalit bitta emas, bir nechta bo’ladi va ular birga ishlaydi. Eng aniq kalit — hisob identifikatori: tizimga kirgan foydalanuvchi uchun uni almashtirish qimmat.

Keyingisi — sessiya yoki qurilma identifikatori: hisobsiz oqimlar uchun ishlaydi, lekin uni tozalash oson. Uchinchisi — tarmoq blok, ya’ni bitta IP emas, butun podset yoki avtonom tizim.

To’rtinchi kalit ko’pincha unutiladi: harakatning o’zi. «Bitta telefon raqamiga yuborilgan SMS soni» — bu ham rate limit, va u kim yuborayotganidan qat’i nazar ishlaydi.

Chegara harakatning narxiga bog’lanadi

Bitta umumiy chegara bo’lmasligi kerak. Statik faylni so’rash bilan qidiruv bajarish yoki SMS yuborish bir xil narxda emas, shuning uchun ular bir xil chegarada bo’lishi mantiqsiz.

Amaliy misol: statik sahifa 1× vazn oladi, qidiruv 10×, SMS yuborish esa 100×. Byudjet shu vazn bo’yicha sarflanadi, shuning uchun foydalanuvchi yuzta sahifa ochishi mumkin, lekin o’n marta qidiruv qilishi mumkin.

Bu, ayniqsa, tashqi xarajat bo’lgan joyda muhim: SMS, pochta, tashqi API. U yerda chegara texnik emas, moliyaviy hisoblanadi.

Sekinlashtirish blokdan yaxshiroq

Chegaradan oshgan so’rovni darhol rad etish shart emas. Ko’p holatda uni sekinlashtirish yetarli: javob 200 millisekund kechiktiriladi va real foydalanuvchi buni sezmaydi.

Skript uchun esa bu halokatli: uning butun samaradorligi tezlikda edi. Sekinlashtirish hujumni foydasiz qiladi, lekin xato bo’lgan taqdirda ham foydalanuvchini yo’qotmaydi.

Bosqichlar shunday quriladi: avval sekinlashtirish, keyin tekshiruv talab qilish, keyin rad etish. Har bosqich oldingisining natijasiga qarab qo’llanadi.

Sxema 2Bitta chegara bo’lmaydi. Statik sahifa bilan SMS yuborish bir xil narxda emas, shuning uchun byudjet harakatning vazniga qarab sarflanadi.

Oyna qanday sanaladi

Qat’iy oyna — eng oson usul va eng oson chetlab o’tiladigani. Agar hisob har daqiqada noldan boshlansa, hujumchi daqiqaning oxirgi soniyasida va keyingisining birinchi soniyasida chegaraning ikki barobarini yuboradi.

Shuning uchun siljuvchi oyna yoki token-bucket ishlatiladi. Ikkinchisi qo’shimcha foyda beradi: u qisqa muddatli portlashga ruxsat beradi, lekin o’rtacha tezlikni ushlab turadi.

Bu farq amalda seziladi. Sahifa ochilganda brauzer o’nlab so’rov yuboradi — bu normal portlash, va uni bloklaydigan cheklov saytni buzadi.

Cheklov qayerda bajariladi

Rate limit qaror qabul qilish joyi bilan ijro joyi ajratilganda ishlaydi. Qaror ilova kontekstida chiqadi, ijro esa iloji boricha pastda va arzon joyda bo’ladi.

Agar cheklov ilova ichida bajarilsa, siz baribir ulanish, TLS va so’rovni o’qishni to’laysiz. Katta oqimda bu cheklovning o’zi yukka aylanadi.

Ikkinchi talab — taqsimlangan hisob. Bir nechta server orasida hisob umumiy bo’lmasa, hujumchi shunchaki har safar boshqa nusxaga tushib chegarani ko’paytiradi.

Sxema 3IP bo’yicha cheklash ikki tomondan ham xato qiladi: NAT ortidagi haqiqiy foydalanuvchilarni bloklaydi va taqsimlangan sekin hujumni umuman ko’rmaydi.

Sozlashni qanday tekshirasiz

Uchta test yetarli. Birinchisi: bitta hisob bilan, lekin o’nta turli IP’dan so’rov yuboring. Chegara ishlasa, kalit hisob bo’yicha ishlayapti.

Ikkinchisi: bitta IP’dan, lekin o’nta turli hisob bilan. Bloklanish bo’lmasa, siz umumiy tarmoq ortidagi foydalanuvchilarni jazolamayapsiz.

Uchinchisi: sekundiga bir so’rovdan, lekin yuzta manbadan. Agar hech narsa sezilmasa, sizda faqat manba bo’yicha cheklov bor va taqsimlangan sekin hujum ko’rinmay o’tadi.

Barcha maqolalar

Tanishamizmi?

Domeningizni ko’rsatsangiz, hozirgi tashqi holatingiz bo’yicha dastlabki tahlil beramiz. Bu bosqichda hech narsa o’zgartirilmaydi.

Boshlaymiz
Bog’lanish
Bog’lanish