رفتن به محتوا
nsin docs

Rate Limiting

Rate limiting درخواست‌های یک بازدیدکننده را در یک بازه‌ی زمانی سقف می‌زند؛ اگر از آن رد شود، nsin او را block یا challenge می‌کند.

موارد استفاده:

  • محافظت از login/sign-up در برابر credential stuffing.
  • جلوگیری از scraping کاتالوگ.
  • محافظت از یک endpoint پرهزینه (search، export، API).
  • کم‌کردن فشار spike های ترافیکی.
  1. Rules → Add Rule → Rate Limit.
  2. آدرس محافظت‌شده را تنظیم کنید — مثلاً /login.
  3. در صورت نیاز HTTP methods را انتخاب کنید — مثلاً فقط POST.
  4. requests-per-seconds، counting mode و breach action را تنظیم کنید.
  5. Save.
Countingمعنی
Per visitorهمه‌چیز از یک آدرس با هم شمرده می‌شود.
Per visitor, per addressهر path جداگانه شمرده می‌شود.

per visitor کل فعالیت را محدود می‌کند؛ per address جلوی این را می‌گیرد که یک endpoint بودجه‌ی endpoint دیگر را مصرف کند.

اگر HTTP methods خالی بماند، همهٔ درخواست‌ها شمرده می‌شوند. با انتخاب یک یا چند متد (GET، HEAD، POST، PUT، PATCH، DELETE، OPTIONS) فقط همان‌ها شمرده می‌شوند — فرم ورود یک POST است، پس محدود کردن POST کاری به بازدید صفحه‌ها ندارد. درخواستی با متد دیگر از این قانون رد می‌شود و با قانون rate limit بعدی شما سنجیده می‌شود.

  • Block — تا پایان window درخواست‌ها را رد می‌کند. برای سوءاستفاده.
  • Challenge — بازدیدکننده ثابت می‌کند انسان است، بعد ادامه می‌دهد. برای محدودیت‌هایی که یک فرد واقعی هم ممکن است به آن‌ها برسد.

Burst: چند درخواست اضافی برای لحظه‌ای تحمل می‌شود، پس صفحه‌ای که چند درخواست با هم می‌فرستد آن را trip نمی‌کند.

محافظت از login: /login، ۵ درخواست در ۶۰ ثانیه، per visitor، challenge در صورت breach.

افراد واقعی یک یا دو بار login می‌کنند؛ یک اسکریپت حدس رمز فوراً به دیوار می‌خورد.

  • اول بالاتر از استفاده‌ی معمول شروع کنید، بعد از دیدن ترافیک واقعی تنگ‌ترش کنید.
  • یک بازدید صفحه شامل درخواست‌های زیادی است (تصویر، CSS، API) — روی endpoint محدود کنید.
  • یک دفتر یا شبکه‌ی موبایل یک آدرس مشترک دارند — سقف‌های site-wide آن‌ها را با هم می‌گیرند.

این بازدیدکننده‌های واقعی را مسدود می‌کند؟ با یک سقف معقول و محدود، نه. اگر مطمئن نیستید، از challenge استفاده کنید.

اتفاقی به سقف رسیدم؟ بعد از عبور window خودش پاک می‌شود.

Rate limiting یا WAF؟ هر دو. WAF حمله را متوقف می‌کند؛ rate limiting چند بار هر کسی می‌تواند بکوبد را کنترل می‌کند. برای ترافیکی که هرگز نمی‌خواهیدش، از block rule استفاده کنید.

بازدیدکننده‌های مسدودشده صفحه‌ی nsin را می‌بینند. صفحه‌ی 429 خود nsin است، قابل جایگزینی نیست — قوانین error page فقط 5xx را پوشش می‌دهند. ببینید صفحات خطای سفارشی.