Rate limt

Rate limit - ma’lum vaqt oynasi ichida bir resursga keladigan so‘rovlar sonini cheklaydi. Cheklov buzilganda tanlangan Action (Block/Challenge/Redirect/Drop/Allow/Log only) bajariladi.

Qanday ishlaydi (aniq formulalar)

  • Limit = N ta so‘rov

  • Davr = T soniya

  • Trigger: Agar bitta Scope bo‘yicha T soniya ichida so‘rovlar N dan oshsa → Action ishga tushadi

  • Bloklash davomiyligi = B soniya → Trigger bo‘lgach, shu Scope uchun B vaqt davomida Action qo‘llanadi

  • Qayta ochilish: B tugagach, hisoblagich yana noldan boshlanadi

Amaliy ko‘rinish: “5/5/5” — “har 5 soniyada 5 ta so‘rovdan oshsa, 5 soniya blokla”.

Formadagi maydonlar (screenshot bilan mos)

1) HTTP metodlari

Qoidaga tegishli metod(lar)ni belgilang: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS.

  • Tavsiya: autentifikatsiya endpointlari uchun asosan POSTni cheklang.

2) Rate limit sozlamalari

Maydon
Nima uchun
Misol

Limit

Vaqt oynasi ichida ruxsat etilgan maksimal so‘rovlar

5

Davr (soniyalarda)

Vaqt oynasi uzunligi

5

Bloklash davomiyligi (soniya)

Limit buzilganda Action necha soniya amal qiladi

5

Scope

Hisoblash birligi (kim uchun cheklanadi)

Quyida qarang

3) Scope (hisoblash birligi)

Scope - “kimga nisbatan sanaymiz?”ni bildiradi. Platformada quyidagi variantlar qo‘llab-quvvatlanadi:

Scope
Ta’rif
Qachon ishlatish

IP

Har bir manba IP uchun alohida hisoblagich

Umumiy holatlar (default)

IP + Path

IP va yo‘l kombinatsiyasi bo‘yicha

Masalan, /login, /search kabi endpointlar

Path (global)

Barcha IP lar uchun, aynan shu yo‘lga umumiy limit

Juda “og‘ir” sahifalar

IP + Method

IP va HTTP metod kombinatsiyasi

POST /login limit

Session cookie

PHPSESSID/session_id bo‘yicha

Auth bo‘lgan foydalanuvchilar

Header qiymati

X-API-Key, User-Agent bo‘yicha

API token / bot guruhlar

Tavsiya: odatda IP yoki IP + Path yetarli. NAT/CGNAT sabab ko‘p foydalanuvchi bitta IP ortida bo‘lsa, Session cookie yoki Header (API-Key) ni tanlang.

4) Maqsad (Target)

  • Limiti qaysi resursga qo‘llashni ko‘rsating: masalan /**, /api/, /login, /about.

  • Regex/wildcard qo‘llash mumkin (sizning UI qoidangizga mos).

  • Misol (screenshot): Maqsad: /about - faqat /about uchun limit.

5) Harakat (Action)

Limit buzilganda bajariladigan amallar:

  • Block — odatda 429 (Too Many Requests) tavsiya etiladi (agar sizda 403 bo‘lsa, shu bilan chiqadi).

  • Challenge — botlar uchun JS/CAPTCHA.

  • Redirect — hushyorlantiruvchi sahifaga (/rate-limited) yo‘naltirish.

  • Drop — sukut bilan ulanishni uzadi (agressiv botlar).

  • Allow — kamdan-kam (monitoring uchun).

  • Log only — kalibrovka (o‘rganish) davrida.

6) Ustuvorlik (Priority) va Holat

  • Ustuvorlik: kichik son — tezroq ishlaydi.

    • Tavsiya: IP+Path+Header qoidalaridan keyin, Cookie/Body dan oldin: masalan 50.

  • Holat: Faol yoki Log only (avval 24 soat Log only qilish tavsiya).


Screenshot’dagi misol

  • Qoida turi: Rate limit

  • Qoida nomi: rate

  • Maqsad: /about

  • HTTP metodlari: GET (zaruratga ko‘ra boshqalar)

  • Limit: 5

  • Davr: 5 soniya

  • Bloklash davomiyligi: 5 soniya

  • Scope: IP

    (tavsiya)

  • Action: Bloklash (429 tavsiya)

  • Ustuvorlik: 50

  • Holat: Faol

Ma’nosi: bitta IP /aboutga 5 soniyada 5 martadan ko‘p kirsa, 5 soniya bloklanadi.

Last updated