در حال بارگذاری...
تست محدودیت تعداد استفاده از عملکرد (Function Usage Limits) برای اطمینان از اینکه مهاجم نمیتواند عملیاتی را بیش از حد مجاز تکرار کند.
اهداف این درس
محدودیت تعداد استفاده شامل محدود کردن تعداد دفعات اجرای یک عملیات در بازه زمانی مشخص است. این شامل محدودیت تلاش ورود، استفاده از کد تخفیف، ارسال پیام و درخواستهای API است.
تکنیکی برای محدود کردن تعداد درخواستهایی که یک کاربر میتواند در بازه زمانی مشخص ارسال کند.
| عملیات | دلیل محدودیت | تأثیر عدم محدودیت |
|---|---|---|
| تلاش ورود | جلوگیری از Brute Force | کشف رمز عبور |
| کد تخفیف | جلوگیری از سوءاستفاده | استفاده نامحدود از تخفیف |
| ارسال پیام | جلوگیری از اسپم | ارسال پیام انبوه |
| API | جلوگیری از سوءاستفاده | بار اضافی روی سرور |
تمام عملیاتی که باید محدود شوند شناسایی کنید: ورود، ثبتنام، کد تخفیف، ارسال پیام و API.
1// ارسال ۱۰ درخواست ورود سریع2for i in range(10):3 POST /api/login4 {"username": "admin", "password": "pass" + str(i)}56// اگر محدودیت نباشد، تمام درخواستها پذیرفته میشوند7// اگر محدودیت باشد، بعد از چند تلاش بلاک میشویدهشدار
هرگز محدودیت را فقط در سمت کلاینت پیادهسازی نکنید. مهاجم میتواند درخواستها را مستقیماً به سرور ارسال کند.
توصیه عملی
از ابزارهایی مثل Redis برای مدیریت محدودیتها و ابزارهایی مثل fail2ban برای بلاک کردن IPهای متخلف استفاده کنید.
هر عملیاتی که محدودیت دارد باید در سمت سرور بررسی شود.
Rate Limiting باید بر اساس IP، کاربر و عملیات باشد.
محدودیتها باید در پایگاه داده ذخیره شوند، نه کلاینت.
لاگ برای شناسایی سوءاستفاده ضروری است.
کدام عملیات نیاز به محدودیت تعداد دارد؟
چرا محدودیت تعداد استفاده مهم است؟
بدون محدودیت، مهاجم میتواند عملیاتی مثل تلاش ورود، استفاده از کد تخفیف یا ارسال پیام را بهصورت نامحدود تکرار کند.
Rate Limiting باید بر چه اساسی باشد؟
Rate Limiting باید بر اساس IP، کاربر، عملیات و ترکیبی از اینها باشد تا از دور زدن آن جلوگیری شود.