رفتن به محتوا

محدودیت نرخ

محدودیت نرخ (Rate limiting) سقفی می‌گذارد بر تعداد درخواستی که یک بازدیدکننده در بازه‌ی زمانی مشخص می‌تواند بفرستد. با عبور از آن، nsin او را مسدود می‌کند یا به چالش می‌کشد تا سرعتش کم شود. این کار صفحه‌ی ورود را از حدس رمز، صفحه‌ی جستجو را از اسکرپر و سرور شما را از فشار بیش‌ازحد محافظت می‌کند.

چه زمانی از آن استفاده کنیم

Section titled “چه زمانی از آن استفاده کنیم”
  • محافظت از صفحات ورود یا ثبت‌نام در برابر حدس رمز.
  • توقف اسکرپ‌کردن کل محتوای سایت.
  • جلوگیری از فشار روی نقطه‌ی پرهزینه (جستجو، خروجی گرفتن، یک API).
  • کم‌کردن شدت جهش‌های ترافیکی تا سایت برای بقیه بالا بماند.

ساختن قانون محدودیت نرخ

Section titled “ساختن قانون محدودیت نرخ”
  1. به قوانینافزودن قانونمحدودیت نرخ بروید.
  2. تعیین کنید از چه آدرس‌هایی محافظت می‌کند — مثلاً /login.
  3. سقف را مشخص کنید: چند درخواست در چند ثانیه.
  4. انتخاب کنید درخواست‌ها چطور شمرده شوند و در صورت عبور چه شود (پایین‌تر).
  5. ذخیره کنید.

نحوه‌ی شمارش درخواست‌ها

Section titled “نحوه‌ی شمارش درخواست‌ها”
شمارشمعنی
به‌ازای هر بازدیدکنندههمه‌چیز از یک آدرس با هم شمرده می‌شود.
به‌ازای هر بازدیدکننده و هر آدرسهر مسیر برای آن بازدیدکننده جداگانه شمرده می‌شود.

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

در صورت عبور از سقف چه می‌شود

Section titled “در صورت عبور از سقف چه می‌شود”
  • مسدودسازی — درخواست‌های بعدی تا پایان بازه رد می‌شوند. وقتی عبور از سقف یعنی سوءاستفاده.
  • چالش — از بازدیدکننده خواسته می‌شود ثابت کند انسان است و پس از آن عادی ادامه می‌دهد. وقتی ممکن است یک کاربر واقعی هم به سقف بخورد.

هم‌چنین می‌توانید burst تعریف کنید: چند درخواست اضافی که لحظه‌ای بالاتر از سقف تحمل می‌شوند. این باعث می‌شود صفحه‌ای که چند درخواست هم‌زمان می‌فرستد، سقف منطقی شما را بی‌دلیل فعال نکند.

محافظت از ورود

  • شامل: /login
  • سقف: ۵ درخواست در ۶۰ ثانیه
  • شمارش: به‌ازای هر بازدیدکننده
  • در صورت عبور: چالش

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

  • کمی بالاتر از مصرف عادی شروع کنید و پس از دیدن ترافیک واقعی سخت‌گیرتر شوید.
  • به یاد داشته باشید یک بازدید صفحه اغلب چندین درخواست است (تصویر، CSS، فراخوانی API) — قانون را به همان نقطه‌ای محدود کنید که واقعاً می‌خواهید محافظت شود.
  • افراد پشت یک شبکه‌ی اداری یا موبایل یک آدرس مشترک دارند. سقف‌های بسیار تنگ روی کل سایت آن‌ها را با هم می‌گیرد.

آیا بازدیدکننده‌های واقعی مسدود می‌شوند؟ با سقف منطقی و محدود به مسیرهای درست، خیر. اگر مطمئن نیستید، به‌جای مسدودسازی چالش را انتخاب کنید — آدم واقعی به‌سادگی از آن رد می‌شود.

کسی اتفاقی به سقف خورد. با پایان بازه خودبه‌خود آزاد می‌شود. کاری لازم نیست.

محدودیت نرخ یا WAF؟ هر دو. WAF جلوی حملات را می‌گیرد؛ محدودیت نرخ کنترل می‌کند چند بار می‌توان در زد. برای ترافیکی که اصلاً نمی‌خواهید، از مسدودسازی استفاده کنید.

بازدیدکننده‌ی مسدودشده صفحه‌ی nsin را می‌بیند. برای کد 429 صفحه‌ی خودتان را بگذارید — به صفحات خطای سفارشی ببینید.