تواصل معنا
Webflow Premium Partner إيهاب فايز
العودة لأدوات AI Coding
الأمان والجودة

API Rate Limiting

حماية APIs من الإساءة بتحديد معدل قابل للتكوين باستخدام نوافذ منزلقة أو دلاء رموز أو نوافذ ثابتة.

Claude Code Cursor Copilot Windsurf Gemini CLI

نظرة عامة

express-rate-limit هو وسيط أساسي لتحديد المعدل لـ Express.js يحد من الطلبات المتكررة للواجهات البرمجية والنقاط النهائية العامة. يستخدم مخزناً في الذاكرة افتراضياً ولكنه يدعم مخازن خارجية مثل Redis للنشر الموزع. يتتبع الوسيط عدد الطلبات لكل عميل (محدد بعنوان IP أو مفتاح مخصص) ضمن نافذة زمنية قابلة للتكوين.

تدعم المكتبة تحديد معدل النافذة الثابتة من البداية حيث يحصل كل عميل على عدد محدد من الطلبات لكل نافذة زمنية. لخوارزميات أكثر تطوراً مثل النوافذ المنزلقة أو دلاء الرموز توفر الحزم المرافقة مثل rate-limit-redis وrate-limit-flexible تنفيذات مخازن متقدمة. يمكنك ضبط حدود مختلفة لمسارات مختلفة وتخطي طلبات معينة وتخصيص الاستجابة عند تجاوز الحدود.

تحديد المعدل ضروري لأمان API لمنع هجمات القوة الغاشمة على نقاط المصادقة والتخفيف من DDoS والحماية من الاستخراج. تشمل أفضل الممارسات وضع حدود أكثر صرامة على النقاط الحساسة (تسجيل الدخول وإعادة تعيين كلمة المرور) واستخدام التأخيرات التدريجية وتوفير رؤوس تحديد المعدل حتى يتمكن العملاء من التنظيم الذاتي.

لمن هذه الأداة؟

  • تحديد محاولات تسجيل الدخول لمنع هجمات القوة الغاشمة
  • تقييد نقاط API العامة لكل مفتاح API
  • وضع حدود معدل مختلفة لمستويات API المجانية والمدفوعة
  • إضافة تحديد معدل مع مخزن Redis للخوادم الموزعة

التثبيت

إعداد Claude Code
npm install express-rate-limit

الإعدادات

import rateLimit from "express-rate-limit"

const limiter = rateLimit({
  windowMs: 15 * 60 * 1000, // 15 minutes
  limit: 100, // max 100 requests per window
  standardHeaders: "draft-7",
  legacyHeaders: false,
  message: { error: "Too many requests, please try again later." },
})

app.use("/api/", limiter)