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 الكامل بالعربي.