قبل أن تبدأ
- معرف مستخدم أو مفتاح جلسة
- مخزن سريع أو قاعدة بيانات للعدادات
- حدود واضحة حسب الخطة
مكان الزر وطريقة التنفيذ
اختر مفتاح العداد
استخدم userId للحسابات، وIP كعامل مساعد للزوار دون الاعتماد عليه وحده.
طبق نافذة قصيرة
مثلاً عدد محدود خلال الدقيقة لمنع الضغط المتتابع، وأعد 429 مع وقت إعادة المحاولة.
طبق حصة يومية
سجل عدد الطلبات أو التكلفة التقديرية لكل مستخدم وأوقف الطلب قبل تجاوز الحد.
أظهر المتبقي
اعرض للزائر الحصة المتبقية بلغة واضحة دون كشف بنية الحماية.
كيف تعرف أن الخطوة نجحت؟
- الطلب الزائد يرجع 429
- العداد ينتهي في الوقت الصحيح
- لا يمكن تجاوز الحصة بتحديث الصفحة
إذا لم تجد الزر أو لم تعمل الخطوة
الحد يطبق على الجميع
لا تستخدم مفتاحاً ثابتاً؛ اربط العداد بالمستخدم أو الجلسة.
العداد يختفي بعد restart
استخدم Redis أو قاعدة بيانات خارج ذاكرة عملية Node.js.
تنبيه مهم
لا تعتمد على متغير JavaScript داخل الخادم كعداد إنتاجي؛ كل نسخة تشغيل قد تملك ذاكرة مختلفة.