تخطَّ إلى المحتوى

Improper Inventory Management

سوء إدارة قائمة جرد الـ APIs Improper Inventory Management

API9:2023 — نسخة أوسع من 'Improper Assets Management' القديمة: نسخ API قديمة، بيئات اختبار مكشوفة، وتكاملات طرف ثالث غير موثّقة، كلها تتيح نقاط دخول لا أحد يراقبها.

مع نمو المشروع، تتكاثر نسخ الـ API (v1، v2، internal-v1) وتبقى النسخ القديمة تعمل بلا تحديثات أمنية لأن أحدًا لم يوثّقها أو يخطط لسحبها رسميًا (Deprecation). التوسعة في 2023 تضيف: بيئات staging/QA مكشوفة للإنترنت بنفس بيانات الإنتاج تقريبًا، ونسيان توثيق أي بيانات تتدفق لخدمات طرف ثالث.

الصياغة

سجل مركزي لكل: نسخة API، بيئة، ومن يستهلكها

📄 مثال

// مثال توثيق بسيط لسياسة دعم النسخ
const apiVersions = {
  v1: { status: 'deprecated', sunsetDate: '2026-01-01', securityPatches: false },
  v2: { status: 'active', securityPatches: true },
};

// Middleware يرفض النسخ منتهية الدعم بدل تركها تعمل بصمت
app.use('/api/v1', (req, res, next) => {
  if (apiVersions.v1.status === 'deprecated' && isPastSunset()) {
    return res.status(410).json({ error: 'هذه النسخة لم تعد مدعومة، استخدم v2' });
  }
  next();
});

أهم النقاط

النقطةالوظيفة
قائمة الجردوثّق كل نسخة API، بيئة (dev/staging/prod)، ومن يستهلكها (تطبيق موبايل، شريك خارجي)
دورة الحياةخطة واضحة لسحب النسخ القديمة (Sunset/Deprecation) بدل تركها تعمل للأبد
بيئات غير الإنتاجلا تستخدم بيانات إنتاج حقيقية في staging المكشوف للإنترنت

💡 نصائح عملية

  • استخدم أداة اكتشاف تلقائي للـ endpoints (API Discovery) في المشاريع الكبيرة — يصعب تتبع كل شيء يدويًا

⚠️ أخطاء شائعة

  • ترك نسخة API قديمة تعمل 'لأن عميلًا واحدًا ما زال يستخدمها' بلا خطة ترحيل أو تحديثات أمنية

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار API-SECURITY الكامل بالعربي.