تخطي إلى المحتوى
Guide

OWASP API Security Top 10: قائمة مرجعية مع الإصلاحات

| 12 min read

تعرف على جميع المخاطر الأمنية العشرة لـ OWASP API (إصدار 2023) مع سيناريوهات الهجوم الحقيقية والإصلاحات الملموسة وقائمة مراجعة النسخ واللصق لمراجعة الأمان الخاصة بك.

Cybersecurity command center with multiple monitoring screens
Photo by Adi Goldstein on Unsplash

تخدم واجهة برمجة التطبيقات الخاصة بك 10000 طلب في الساعة. ثلاثة من هذه الطلبات تأتي من مهاجم يتغير ان order_id المعلمة وتنزيل كل سجل عميل في قاعدة البيانات الخاصة بك. تجد عندما يفعل المستخدمون ذلك، على تويتر.

يقوم OWASP API Security Top 10 (إصدار 2023) بفهرسة المخاطر العشرة المسؤولة عن غالبية انتهاكات واجهة برمجة التطبيقات. يستعرض هذا الدليل كل خطر مع شرح من فقرة واحدة، وهو هجوم واقعي السيناريو والحل الملموس. حيث تساعدك نقطة نهاية botoi API على اكتشاف المخاطر أو منعها، فإن يتم تضمين نقطة النهاية ذات الصلة مع ملف العمل curl يأمر.

API1:2023 ترخيص مستوى الكائن المعطل (BOLA)

يحدث BOLA عندما تقوم واجهة برمجة التطبيقات (API) بإرجاع البيانات بناءً على معرف الكائن دون التحقق مما إذا كان الطلب أم لا يمتلك المستخدم هذا الكائن. مهاجم يدعو GET /api/orders/1001، يحصل على البيانات، ثم يكررها من خلال 1002, 1003، وما إلى ذلك. يتم الآن كشف كل سجل في الجدول. تم تصنيف BOLA على أنها المخاطر الأولى لواجهة برمجة التطبيقات (API) منذ قائمة أمان OWASP API الأولى في عام 2019.

سيناريو الهجوم: يكشف تطبيق توصيل الطعام GET /api/orders/:id. يكتب المهاجم حلقة من 1 إلى 100000 ويقوم بتنزيل كل طلب، بما في ذلك عناوين التسليم، أرقام الهواتف وتفاصيل طريقة الدفع.

إليك الكود الضعيف:

// Vulnerable: no ownership check
app.get("/api/orders/:id", async (req, res) => {
  const order = await db.orders.findById(req.params.id);
  res.json(order); // Any user can read any order
});

وهنا هو الإصلاح:

// Fixed: verify the requesting user owns the resource
app.get("/api/orders/:id", async (req, res) => {
  const order = await db.orders.findById(req.params.id);

  if (!order) return res.status(404).json({ error: "Not found" });
  if (order.userId !== req.user.id) {
    return res.status(403).json({ error: "Forbidden" });
  }

  res.json(order);
});

تحتاج كل نقطة نهاية تقبل معرفًا من العميل إلى التحقق من الملكية. لا استثناءات. استخدم البرامج الوسيطة أو عامل تصفية الاستعلام (على سبيل المثال، WHERE user_id = ?) لفرض ذلك على طبقة البيانات.

API2:2023 المصادقة المعطلة

تغطي المصادقة المعطلة إنشاء الرمز المميز الضعيف، والتحقق من صحة الرمز المميز المفقود، وحشو بيانات الاعتماد الهجمات ونقاط النهاية التي تقبل الرموز المميزة منتهية الصلاحية أو التي تم العبث بها. يستهدف المهاجمون نقاط نهاية تسجيل الدخول باستخدام قوائم بيانات الاعتماد المخترقة، أو يسرقون الرموز المميزة من مساحة تخزين غير آمنة.

سيناريو الهجوم: يحصل المهاجم على قائمة تضم 10 ملايين زوج من البريد الإلكتروني/كلمات المرور من خرق للبيانات. يكتبون نصًا يختبر كل زوج مقابل زوجك POST /api/login نقطة النهاية. ليس لدى واجهة برمجة التطبيقات (API) الخاصة بك أي حد لمعدل محاولات تسجيل الدخول، لذا قام المهاجم باختراق 2000 حساب ساعة.

يصلح: فرض حد للمعدل على نقاط نهاية المصادقة (5 محاولات في الدقيقة لكل IP). تتطلب مصادقة متعددة العوامل للعمليات الحساسة. التحقق من بيانات اعتماد المستخدم مقابل المعروفة الانتهاكات قبل السماح بإنشاء الحساب.

ال botoi خرق API التحقق يخبرك سواء ظهر عنوان بريد إلكتروني في خروقات البيانات المعروفة:

curl -s -X POST https://api.botoi.com/v1/breach/check \\
  -H "Content-Type: application/json" \\
  -d '{
    "email": "user@example.com"
  }'

إجابة:

{
  "success": true,
  "data": {
    "breached": true,
    "count": 3,
    "breaches": [
      { "name": "ExampleCorp", "date": "2024-01-15", "dataTypes": ["email", "password"] },
      { "name": "DataDump2023", "date": "2023-08-22", "dataTypes": ["email", "username"] },
      { "name": "LeakedDB", "date": "2022-11-03", "dataTypes": ["email", "phone"] }
    ]
  }
}

يتصل /v1/breach/check أثناء التسجيل أو إعادة تعيين كلمة المرور. إذا ظهر البريد الإلكتروني في الخروقات، مطالبة المستخدم باختيار كلمة مرور أقوى وفريدة من نوعها وتمكين المصادقة الثنائية.

API3:2023 الترخيص على مستوى خاصية الكائن المعطل

يجمع هذا الخطر بين التخصيص الجماعي والتعرض المفرط للبيانات. يحدث التعيين الجماعي عندما يكون API ربط حقول نص الطلب مباشرة بنموذج البيانات دون تصفية. يرسل المستخدم "role": "admin" في تحديث الملف الشخصي ويحصل على امتيازات مرتفعة. التعرض المفرط للبيانات يحدث عندما تقوم واجهة برمجة التطبيقات (API) بإرجاع الحقول الداخلية (معرفات قاعدة البيانات وكلمات المرور المجزأة وعلامات المسؤول) للعميل لا ينبغي أبدا أن نرى.

سيناريو الهجوم: يتيح تطبيق SaaS للمستخدمين تحديث ملفاتهم الشخصية عبر PUT /api/users/:id. تقبل الواجهة الخلفية نص الطلب بالكامل وتكتبه في قاعدة البيانات. ويضيف أحد المهاجمين "plan": "enterprise" للطلب والحصول على حرية الوصول إلى الميزات المميزة.

يصلح: استخدم القوائم المسموح بها الصريحة للحقول القابلة للكتابة. لا تقم أبدًا بربط بيانات الطلب الأولية ببياناتك نموذج البيانات. استخدم كائنات DTO للاستجابة المنفصلة التي تستبعد الحقول الداخلية. التحقق من صحة كل الممتلكات الواردة ضد المخطط قبل المعالجة.

API4:2023 استهلاك غير مقيد للموارد

تسمح واجهات برمجة التطبيقات التي تقبل الطلبات غير المحدودة للمهاجمين بتشغيل فاتورة البنية التحتية الخاصة بك واستنفاد قاعدة البيانات الاتصالات، أو يؤدي إلى رفض الخدمة. ينطبق هذا على حدود المعدل المفقودة والاستعلام غير المحدود المعلمات (على سبيل المثال، ?limit=1000000)، عمليات تحميل الملفات بدون حد أقصى للحجم، ونقاط النهاية لذلك تشغيل وظائف خلفية باهظة الثمن.

سيناريو الهجوم: تقوم نقطة نهاية API بإنشاء تقارير PDF. مهاجم يرسل 500 الطلبات المتزامنة، كل منها يطلب تقريرًا من 200 صفحة. يمتلئ تجمع العاملين لديك ويصبح شرعيًا يحصل المستخدمون على 503 أخطاء خلال الـ 20 دقيقة القادمة.

يصلح: إضافة حد للمعدل لكل مستخدم ولكل IP. تحديد حدود ترقيم الصفحات من جانب الخادم الحد الأقصى. ضبط حدود حجم تحميل الملف. استخدم المعالجة القائمة على قائمة الانتظار للعمليات باهظة الثمن.

// Express rate limiter per user
import rateLimit from "express-rate-limit";

const apiLimiter = rateLimit({
  windowMs: 60 * 1000, // 1 minute
  max: 30,             // 30 requests per minute per IP
  standardHeaders: true,
  legacyHeaders: false,
  message: { error: "Rate limit exceeded. Try again in 60 seconds." },
});

app.use("/api/", apiLimiter);

API5:2023 ترخيص مستوى الوظيفة معطل

تتيح عيوب الترخيص على مستوى الوظيفة للمستخدمين العاديين الاتصال بنقاط النهاية الإدارية. النمط النموذجي: أ مكالمات لوحة الإدارة DELETE /api/admin/users/:id. الواجهة الأمامية تخفي الزر من المستخدمين غير الإداريين، لكن نقطة نهاية واجهة برمجة التطبيقات نفسها لا تتحقق من الأدوار. أي مستخدم مصادق عليه يكتشف أن عنوان URL يمكنه حذف الحسابات.

سيناريو الهجوم: يجد المطور /api/admin/export-all-users في حزمة جافا سكريبت. يسمونه باستخدام رمز المستخدم العادي الخاص بهم ويقومون بتنزيل المستخدم الكامل قاعدة البيانات.

يصلح: تحقق من دور المستخدم في طبقة واجهة برمجة التطبيقات (API) لكل نقطة نهاية إدارية. لا تعتمد على الواجهة الأمامية لإخفاء الوظائف. يوجه مسؤول المجموعة خلف البرامج الوسيطة التي تتحقق role === "admin" قبل معالجة الطلب.

API6:2023 وصول غير مقيد إلى تدفقات الأعمال الحساسة

تعتبر بعض تدفقات واجهة برمجة التطبيقات خطيرة على نطاق واسع حتى عندما يتم السماح بكل طلب فردي. شراء عناصر المخزون المحدود، وإنشاء حسابات تجريبية مجانية، وتقديم رموز الإحالة؛ هذه التدفقات كسر عندما الآلي. يقوم الروبوت بتسجيل 10000 حساب مجاني أو يشتري كل تذكرة في عملية بيع سريعة قبل أن يقوم المستخدم الحقيقي بتحميل الصفحة.

سيناريو الهجوم: بائع أحذية رياضية يكتب روبوتًا يتصل POST /api/checkout 500 مرة في الثانية الأولى من الهبوط المحدود. كل زوج يبيع إلى الروبوتات. يرى العملاء البشريون "تم البيع" قبل انتهاء تحميل الصفحة.

يصلح: أضف اختبارات CAPTCHA أو تحديات إثبات العمل إلى التدفقات عالية القيمة. جهاز المسار بصمات الأصابع للكشف عن الأتمتة. تعيين حدود الشراء لكل مستخدم. استخدم الوصول المستند إلى قائمة الانتظار لـ flash sales instead of first-come-first-served endpoints.

API7:2023 تزوير الطلب من جانب الخادم (SSRF)

يحدث SSRF عندما تقبل واجهة برمجة التطبيقات (API) عنوان URL من العميل وتجلبه من جانب الخادم بدونه التحقق من صحة الهدف. يقدم المهاجم http://169.254.169.254/latest/meta-data/ ويعيد خادمك بيانات اعتماد مثيل AWS. أو يستهدفون http://localhost:6379/ والتفاعل مع مثيل Redis الخاص بك.

سيناريو الهجوم: يتيح تكامل خطاف الويب للمستخدمين تحديد عنوان URL لرد الاتصال. يقوم المهاجم بتعيين رد الاتصال على http://169.254.169.254/latest/meta-data/iam/security-credentials/ ويتلقى بيانات اعتماد دور IAM الخاصة بموفر الخدمة السحابية الخاص بك في حمولة خطاف الويب.

// Block internal network requests
const BLOCKED_RANGES = [
  /^10\\./, /^172\\.(1[6-9]|2\\d|3[01])\\./, /^192\\.168\\./,
  /^127\\./, /^0\\./, /^169\\.254\\./,
  /^localhost$/i, /^\\[::1\\]$/,
];

function isSafeUrl(urlString) {
  try {
    const url = new URL(urlString);
    const hostname = url.hostname;
    return !BLOCKED_RANGES.some((re) => re.test(hostname));
  } catch {
    return false;
  }
}

app.post("/api/fetch-url", async (req, res) => {
  const { url } = req.body;
  if (!isSafeUrl(url)) {
    return res.status(400).json({ error: "URL targets a blocked network range" });
  }
  // proceed with external fetch
});

يصلح: التحقق من صحة عناوين URL المقصودة وإدراجها في القائمة المسموح بها. حظر نطاقات IP الخاصة والسحابة نقاط نهاية البيانات الوصفية. قم بحل DNS قبل تقديم الطلب لمنع إعادة ربط DNS. تشغيل للخارج طلبات من قطاع شبكة معزول.

API8:2023 التكوين الخاطئ للأمان

التكوين الخاطئ هو أوسع فئة من المخاطر. يتضمن قيود CORS المفقودة والخطأ المطول الرسائل التي تتسرب من تتبعات المكدس، وبيانات الاعتماد الافتراضية على لوحات الإدارة، وتمكين أساليب HTTP غير الضرورية، لم يتم فرض طبقة النقل الآمنة، كما أن رؤوس الأمان مفقودة. يؤدي أي تكوين خاطئ إلى إنشاء نقطة دخول.

سيناريو الهجوم: تقوم واجهة برمجة التطبيقات (API) بإرجاع تتبعات المكدس الكاملة في استجابات أخطاء الإنتاج. ان يقوم المهاجم بإطلاق الأخطاء عن قصد، ويقرأ تتبعات المكدس، ويحدد ORM وإصدار قاعدة البيانات، ثم يقوم بصياغة حمولة حقن بناءً على نقاط الضعف المعروفة في هذا الإصدار.

يصلح: تجريد آثار المكدس من استجابات الإنتاج. قم بتعيين CORS للسماح بنطاقاتك فقط. قم بتعطيل طرق HTTP التي لا تستخدمها. فرض TLS في كل مكان. قم بإجراء عمليات فحص تلقائية لرأس الأمان. قم بتطهير جميع مخرجات HTML لمنع XSS.

ال تم نشر HTML Sanitize API شرائط العلامات والسمات الضارة من HTML الذي يوفره المستخدم:

curl -s -X POST https://api.botoi.com/v1/html-sanitize \\
  -H "Content-Type: application/json" \\
  -d '{
    "html": "<p>Hello</p><script>document.cookie</script><img onerror=alert(1) src=x>"
  }'

إجابة:

{
  "success": true,
  "data": {
    "sanitized": "<p>Hello</p><img src=\\"x\\">"
  }
}

ال <script> العلامة و onerror تتم إزالة السمة. HTML الآمن يتم إرجاعها. قم باستدعاء نقطة النهاية هذه قبل تخزين أو عرض أي HTML يقدمه المستخدم.

API9:2023 إدارة المخزون غير السليمة

تعمل إصدارات واجهة برمجة التطبيقات القديمة ونقاط النهاية المرحلية المنسية والمسارات غير الموثقة على إنشاء سطح هجوم لك لا تراقب. يقوم المهاجمون بالبحث عن /v1/, /v2/, /api-dev/، و /internal/ المسارات. لقد وجدوا نقطة نهاية مهملة تفتقر إلى ضوابط الأمان قمت بإضافتها إلى الإصدار الحالي.

سيناريو الهجوم: تم شحن فريقك /v2/users مع الوصول على أساس الدور التحكم. لكن /v1/users لا يزال يعمل في الإنتاج دون أي ترخيص. مهاجم يكتشف مسار v1 عبر ملف Swagger عام ويسحب جدول المستخدم بأكمله.

يصلح: الحفاظ على مخزون API الكامل. إيقاف تشغيل الإصدارات القديمة؛ لا تتركهم قيد التشغيل "في حالة استمرار شخص ما في استخدامه." قم ببوابة كل إصدار خلف نفس البرنامج الوسيط للمصادقة. مسح البنية التحتية الخاصة بك للمسارات المكشوفة وفقًا لجدول زمني منتظم.

API10:2023 الاستهلاك غير الآمن لواجهات برمجة التطبيقات

تستدعي واجهة برمجة التطبيقات (API) الخاصة بك خدمات الجهات الخارجية: معالجات الدفع، وموفري البريد الإلكتروني، وواجهات برمجة تطبيقات الترميز الجغرافي. إذا كنت الثقة في ردودهم دون التحقق من صحتها، حيث يمكن لطرف ثالث مخترق أو ضار إدخال البيانات في النظام الخاص بك. يتضمن ذلك الثقة في عناوين URL لإعادة التوجيه، أو تحليل JSON الذي لم يتم التحقق من صحته، أو تخزينه استجابات الطرف الثالث دون التعقيم.

سيناريو الهجوم: يقوم تطبيقك بجلب بيانات الشركة من واجهة برمجة تطبيقات إثراء تابعة لجهة خارجية ويخزن company_name الحقل مباشرة في قاعدة البيانات الخاصة بك. يحصل على واجهة برمجة التطبيقات للتخصيب للخطر، والمهاجم يحقن <script> العلامات في أسماء الشركات. كل يقوم المستخدم الذي يشاهد الملف التعريفي للشركة في لوحة المعلومات الخاصة بك بتنفيذ البرنامج النصي.

يصلح: التحقق من صحة جميع استجابات الطرف الثالث وتطهيرها قبل تخزينها أو عرضها لهم. استخدم التحقق من صحة المخطط على البيانات الواردة. ضبط مهلة للمكالمات الخارجية. تطبيق نفس المدخلات التحقق من صحة بيانات الطرف الثالث التي تطبقها على إدخال المستخدم.

اكتشف تعرض البيانات الحساسة في استجابات واجهة برمجة التطبيقات (API) الخاصة بك

غالبًا ما تؤدي مخاطر API1 وAPI3 إلى مغادرة البيانات الحساسة لواجهة برمجة التطبيقات الخاصة بك. ال واجهة برمجة تطبيقات الكشف عن botoi PII يقوم بمسح النص ل أرقام الضمان الاجتماعي، وأرقام بطاقات الائتمان، وعناوين البريد الإلكتروني، وأرقام الهواتف، وعناوين IP، و تواريخ الميلاد. قم بتشغيله على أجسام استجابة API الخاصة بك في اختبارات التكامل للقبض على الصدفة تسرب البيانات قبل النشر.

curl -s -X POST https://api.botoi.com/v1/pii/detect \\
  -H "Content-Type: application/json" \\
  -d '{
    "text": "Customer SSN is 123-45-6789 and card is 4111111111111111"
  }'

إجابة:

{
  "success": true,
  "data": {
    "found": true,
    "count": 2,
    "findings": [
      {
        "type": "ssn",
        "value": "123-45-6789",
        "start": 17,
        "end": 28,
        "masked": "***-**-6789"
      },
      {
        "type": "credit_card",
        "value": "4111111111111111",
        "start": 42,
        "end": 58,
        "masked": "************1111"
      }
    ]
  }
}

إذا أدت استجابة واجهة برمجة التطبيقات (API) الخاصة بك إلى ظهور نتائج، فإن نقطة النهاية الخاصة بك تقوم بإرجاع البيانات التي لا ينبغي للعميل رؤيتها. قم بإصلاح الاستعلام أو DTO لاستبعاد تلك الحقول.

تشفير البيانات الحساسة في حالة الراحة

عندما تقوم واجهة برمجة التطبيقات الخاصة بك بتخزين التكوينات أو الرموز المميزة أو بيانات الاعتماد الحساسة، قم بتشفيرها قبل الكتابة إلى قاعدة البيانات. ال واجهة برمجة تطبيقات تشفير botoi يوفر تشفير AES-256-CBC:

curl -s -X POST https://api.botoi.com/v1/encrypt/encrypt \\
  -H "Content-Type: application/json" \\
  -d '{
    "text": "sensitive-api-token-abc123",
    "password": "your-secret-key"
  }'

إجابة:

{
  "success": true,
  "data": {
    "encrypted": "U2FsdGVkX1+abc...encrypted_output_here",
    "algorithm": "aes-256-cbc"
  }
}

قم بتخزين الإخراج المشفر. فك التشفير مع /v1/encrypt/decrypt فقط عندما تكون القيمة مطلوب. وهذا يحد من نطاق الانفجار إذا حصل المهاجم على حق الوصول للقراءة إلى قاعدة البيانات الخاصة بك من خلال ثغرة أمنية في حقن BOLA أو SQL.

قائمة التحقق من أفضل 10 برامج أمان لـ OWASP API

اطبع هذا الجدول أو أضفه إلى قالب مراجعة الأمان الخاص بك. تحقق من كل عنصر قبل أي إصدار لواجهة برمجة التطبيقات.

مخاطرة يفحص نقطة النهاية botoi
كان API1 كل نقطة نهاية تقبل معرف الكائن تتحقق من ملكيته
API2 مصادقة مكسورة معدل تسجيل الدخول محدود؛ تنتهي صلاحية الرموز المميزة؛ وزارة الخارجية في العمليات الحساسة /v1/breach/check
مصادقة خاصية API3 حقول الطلب مدرجة في القائمة المسموح بها؛ استجابة DTOs تستبعد العناصر الداخلية /v1/pii/detect
حد موارد API4 حدود المعدل، وحدود ترقيم الصفحات، وحدود حجم الملف مفروضة
مصادقة وظيفة API5 تتحقق نقاط نهاية المسؤول من الدور في طبقة واجهة برمجة التطبيقات (API)، وليس الواجهة الأمامية
API6 تدفق الأعمال اختبار CAPTCHA/إثبات العمل على التدفقات عالية القيمة؛ حدود لكل مستخدم
API7 SSRF التحقق من صحة عناوين URL المقدمة من قبل المستخدم؛ تم حظر النطاقات الخاصة
API8 خطأ في التكوين لا توجد آثار المكدس. CORS مقيدة؛ HTML معقمة /v1/html-sanitize
مخزون API9 تم إيقاف تشغيل إصدارات API القديمة؛ جميع الطرق موثقة
API10 الاستهلاك غير الآمن يتم التحقق من صحة استجابات الطرف الثالث وتعقيمها قبل التخزين /v1/html-sanitize

إلى أين نذهب من هنا

توجد وثائق OWASP API Security Top 10 الكاملة في owasp.org/API-Security. تتضمن كل صفحة مخاطر طرق الكشف، وأمثلة لسيناريوهات الهجوم، ومراجع لـ CWEs.

لإجراء عمليات فحص تلقائية، قم بدمج نقاط نهاية botoi أعلاه في مسار CI الخاص بك. قم بتشغيل الكشف عن معلومات تحديد الهوية الشخصية (PII). ضد تركيبات استجابة API. تعقيم HTML المخزن عند الكتابة. التحقق من رسائل البريد الإلكتروني للمستخدم الجديد ضد الاختراق قواعد البيانات أثناء التسجيل. هذه إضافات صغيرة إلى مجموعة الاختبار الخاصة بك والتي تلتقط أدوات فحص المخاطر يغيب.

FAQ

ما هو OWASP API Security Top 10؟
إن OWASP API Security Top 10 عبارة عن قائمة تضم أهم عشرة مخاطر أمنية لواجهة برمجة التطبيقات (API)، والتي يحتفظ بها مشروع Open Worldwide Application Security Project. يغطي إصدار 2023 الترخيص المعطوب على مستوى الكائن، والمصادقة المعطلة، والتفويض على مستوى خاصية الكائن المعطوب، والاستهلاك غير المقيد للموارد، والتفويض المعطل على مستوى الوظيفة، والوصول غير المقيد إلى تدفقات الأعمال الحساسة، وتزوير الطلب من جانب الخادم، والتكوين الخاطئ للأمان، وإدارة المخزون غير المناسبة، والاستهلاك غير الآمن لواجهات برمجة التطبيقات.
كم مرة يتم تحديث OWASP API Security Top 10؟
أصدرت OWASP أول 10 API Security Top 10 في عام 2019 وقامت بتحديثه في عام 2023. ولا يوجد جدول زمني ثابت للتحديث. يقوم فريق المشروع بجمع البيانات من الحوادث الأمنية، وتقارير مكافآت الأخطاء، ومساهمات المجتمع، ثم ينشر طبعة جديدة عندما يتغير مشهد التهديد بما يكفي لتبرير حدوث ذلك.
ما هو BOLA ولماذا يعد الخطر الأول لواجهة برمجة التطبيقات (API)؟
يحدث BOLA (تفويض مستوى الكائن المكسور) عندما تقبل نقطة نهاية API معرف كائن من العميل وتقوم بإرجاع البيانات دون التحقق من أن المستخدم الطالب يملك هذا الكائن. يقوم المهاجم بتغيير المعرف في الطلب والوصول إلى بيانات مستخدم آخر. وهي تحتل المرتبة الأولى لأنها شائعة وسهلة الاستغلال، وغالبًا ما تكشف سجلات حساسة على نطاق واسع.
هل يمكن للأدوات الآلية اكتشاف جميع المخاطر العشرة الأوائل لـ OWASP API Security؟
لا. تكتشف الماسحات الضوئية الآلية التكوين الخاطئ (API8)، وحدود المعدل المفقودة (API4)، وبعض أنماط الحقن (عبر API8). لكن عيوب الترخيص (API1 وAPI3 وAPI5) تتطلب فهمًا لمنطق الأعمال وهو ما تفتقر إليه الماسحات الضوئية. أنت بحاجة إلى مراجعة التعليمات البرمجية يدويًا واختبار الاختراق وفحوصات على مستوى البنية للحصول على تغطية كاملة.
كيف يمكنني تحديد أولويات مخاطر OWASP API التي يجب إصلاحها أولاً؟
ابدأ بـ API1 (BOLA) وAPI2 (المصادقة المعطلة) لأنها تؤدي إلى خروقات مباشرة للبيانات. ثم قم بالتعامل مع API4 (الاستهلاك غير المقيد للموارد) لمنع رفض الخدمة. بعد ذلك، تعامل مع المخاطر المتبقية بناءً على نقاط النهاية التي تتعامل مع البيانات الأكثر حساسية في تطبيقك.

ابدأ البناء مع botoi

أكثر من 150 نقطة نهاية API للبحث ومعالجة النصوص وتوليد الصور وأدوات المطورين. باقة مجانية، بدون بطاقة ائتمان.