🚦
Xavfsizlik

Rate limiting — so'rovlar sonini cheklash orqali serverni hujumlardan himoya qilish

22.10.2033
← Barcha maqolalar

Rate limiting tarmoq xavfsizligida eng asosiy himoya qatlamlaridan biri. Uning mohiyati oddiy — bir IP manzil yoki foydalanuvchidan ma'lum vaqt ichida nechta so'rov qabul qilishni cheklash. Agar limit oshib ketsa, server qo'shimcha so'rovlarni rad etadi va xato qaytaradi. Bu DDoS hujumlaridan, brute force urinishlardan va API'ni suiiste'mol qilishdan saqlaydi. Shuningdek, server resurslarini barcha foydalanuvchilar o'rtasida adolatli taqsimlashga yordam beradi.

Rate limiting nima uchun kerak

Internet xizmatlari ochiq bo'lgani uchun har kim ulanib, so'rov yuborishi mumkin. Yomon niyatli foydalanuvchi yoki bot saytga sekundiga minglab so'rov yuborib, serverni ishdan chiqarishi mumkin. Bundan tashqari, parolni topish uchun ko'p marta urinishlar ham xavfli. Rate limiting bu muammolarni hal qiladi — agar bir manbadan juda ko'p so'rov kelsa, ular avtomatik to'xtatiladi. Muhim narsa shundaki, rate limiting tuzilmaviy himoya qatlami bo'lib, biror dasturda zaiflik bo'lsa ham, hujumchi tezda ekspluatatsiya qila olmaydi.

Nginx'da rate limiting sozlash

Nginx'da rate limiting limit_req_zone va limit_req direktivalari orqali sozlanadi. Avval zona belgilanadi — qaysi kalit asosida cheklash (IP, foydalanuvchi, header) va xotira hajmi. Keyin server yoki location blokida qancha so'rovga ruxsat berilishi va qancha burst ruxsat etilishi ko'rsatiladi. Burst — qisqa muddatli yuk uchun rezerv, masalan, foydalanuvchi sahifa yuklaganda ko'p resurs so'raydi va bu normal. Nginx'da bir necha zonalar yaratib, har xil endpoint'lar uchun har xil limitlar qo'yish mumkin.

Cloudflare orqali rate limiting

Cloudflare bulutli rate limiting taklif etadi va u eng samarali variant, chunki hujum Cloudflare serverlarida to'xtaydi va sizning serveringizga umuman yetib kelmaydi. Cloudflare dashboard'idan qoidalar yaratiladi — URL pattern, so'rovlar soni, vaqt oralig'i va aksiya. Aksiya bloklash, CAPTCHA so'rash yoki shunchaki tashlash bo'lishi mumkin. Bepul rejada ham asosiy rate limiting bor, lekin kengaytirilgan qoidalar uchun pullik reja kerak. Bu ayniqsa login sahifalarini va API endpoint'larini himoya qilish uchun foydali.

Dastur darajasida rate limiting

Web server darajasida rate limiting yaxshi, lekin biznes mantiqi asosida cheklashlar kerak bo'lganda dasturda amalga oshirish kerak. Misol uchun, foydalanuvchi tasdiqlash kodini bir kunda 5 martadan ko'p so'ramasligi yoki tovar zakazni daqiqada 3 martadan ko'p yubormasligi kerak bo'lishi mumkin. Redis bunda eng yaxshi vosita — sanagichlarni xotirada saqlaydi va TTL bilan avtomatik tozalanadi. Laravel, Django va boshqa freymvorklarda rate limiting middleware tayyor bo'lib, faqat sozlash kifoya.

Sayt.uz amaliyot

Sayt.uz Nginx darajasida bir necha qatlamli rate limiting ishlatadi. Umumiy saytlarga IP boshiga sekundiga 30 so'rov, login sahifalariga esa daqiqada 5 so'rov chegarasi qo'yilgan. API endpoint'lari uchun token asosida cheklash bor — har bir mijoz o'z tarifiga qarab limitga ega. Agar mijoz limitdan oshsa, kabinetda ogohlantirish chiqadi va tarifni oshirish taklif etiladi. Cloudflare orqali ham qo'shimcha himoya qatlami yoqilgan — DDoS yuk peakida avtomatik aniqlanib bloklanadi.

O'xshash maqolalar

🔐 Parol menejerlar — Bitwarden, 1Password, LastPass va KeePass tanlovi 🍯 Honeypot — formada yashirin maydon, botlarni ushlaydi va spamni to'xtatadi 📄 /.well-known/security.txt — xavfsizlik bo'yicha bog'lanish standart 📋 GDPR moslik — Yevropa ma'lumotlarini himoya qilish majburiyatlari
🌐 Til
🇺🇿 O'zbek 🇺🇿 Ўзбек 🇷🇺 Русский 🇬🇧 English