
واجهة برمجة تطبيقات مايكروسيرفيس معرضة للثغرات بشكل متعمد، مصممة للتدريب العملي على أهم 10 مخاطر أمن واجهات API وفقًا لـ OWASP، مع تحديات مدمجة وسير عمل واقعي لشراء السيارات.
واجهة برمجة التطبيقات السخيفة تمامًا (crAPI) ستساعدك على فهم أهم عشرة مخاطر أمنية لواجهات برمجة التطبيقات. تم تصميم crAPI لتكون ضعيفة عن قصد، لكن يمكنك تشغيلها بأمان للتعلم/التدريب.
crAPI حديثة، مبنية على بنية الخدمات المصغرة. عندما يحين وقت شراء سيارتك الأولى، سجل حسابًا وابدأ رحلتك. لمعرفة المزيد عن crAPI، يرجى مراجعة نظرة عامة على crAPI.
بعد إعداد crAPI، يُنصح باتباع سير العمل المستهدف للمستخدم لفهم كيفية عمل التطبيق قبل محاولة أي تحديات أمنية.
-سير عمل التطبيق (المسار السعيد)
ستحتاج إلى تثبيت Docker و docker compose وتشغيلهما على نظام المضيف. أيضًا، يجب أن يكون إصدار docker compose هو 1.27.0 أو أعلى. تحقق من إصدار docker compose باستخدام:
docker compose version
قم بترقية إصدار docker compose إذا واجهت أخطاء مثل
ERROR: Invalid interpolation format for ...
يمكنك استخدام الصور المبنية مسبقًا التي يولدها سير عمل CI الخاص بنا عن طريق تنزيل ملفات docker compose و .env.
لاستخدام أحدث إصدار مستقر.
curl -L -o /tmp/crapi.zip https://github.com/OWASP/crAPI/archive/refs/heads/main.zip
unzip /tmp/crapi.zip
cd crAPI-main/deploy/docker
docker compose pull
docker compose -f docker-compose.yml --compatibility up -d
لتجاوز إعدادات الخادم، قم بتغيير قيم المتغيرات الموجودة في ملف .env أو أضف المتغيرات المعنية إلى بداية أمر docker compose.
على سبيل المثال، لعرض النظام على جميع واجهات الشبكة.
LISTEN_IP="0.0.0.0" docker compose -f docker-compose.yml --compatibility up -d
curl.exe -L -o crapi.zip https://github.com/OWASP/crAPI/archive/refs/heads/main.zip
tar -xf .\crapi.zip
cd crAPI-main/deploy/docker
docker compose pull
docker compose -f docker-compose.yml --compatibility up -d
لتجاوز إعدادات الخادم، قم بتغيير قيم المتغيرات الموجودة في ملف .env أو أضف المتغيرات المعنية إلى بداية أمر docker compose.
على سبيل المثال، لعرض النظام على جميع واجهات الشبكة.
LISTEN_IP="0.0.0.0" docker compose -f docker-compose.yml --compatibility up -d
لاستخدام أحدث إصدار تطويري
curl -L -o /tmp/crapi.zip https://github.com/OWASP/crAPI/archive/refs/heads/develop.zip
unzip /tmp/crapi.zip
cd crAPI-develop/deploy/docker
docker compose pull
docker compose -f docker-compose.yml --compatibility up -d
قم بزيارة http://localhost:8888
ملاحظة: يتم إرسال جميع رسائل البريد الإلكتروني إلى خدمة mailhog افتراضيًا ويمكن فحصها على http://localhost:8025 يمكنك تغيير إعدادات SMTP إذا لزم الأمر، ومع ذلك ستظل جميع رسائل البريد الإلكتروني ذات النطاق example.com تذهب إلى mailhog.
لتكوين مزود LLM للدردشة الآلية، راجع تعليمات الإعداد.
يتيح لك هذا الخيار تشغيل crAPI داخل جهاز افتراضي، وبالتالي معزول عن نظامك. ستحتاج إلى تثبيت Vagrant و، على سبيل المثال VirtualBox.
$ git clone [REPOSITORY-URL]
$ cd deploy/vagrant && vagrant up
ملاحظة: يتم إرسال جميع رسائل البريد الإلكتروني إلى خدمة mailhog ويمكن فحصها على http://192.168.33.20:8025
بمجرد الانتهاء من استخدام crAPI، يمكنك إزالته بالكامل من نظامك عن طريق تشغيل الأمر التالي من المجلد الجذر للمستودع
$ cd deploy/vagrant && vagrant destroy
إذا كنت بحاجة إلى أي مساعدة في تثبيت وتشغيل crAPI، يمكنك الاطلاع على هذا الدليل: دليل استكشاف الأخطاء وإصلاحها crAPI. إذا لم يحل هذا مشكلتك، يرجى إنشاء مشكلة في Github Issues.
لتجاوز إعدادات الخادم، قم بتغيير قيم المتغيرات الموجودة في ملف .env أو أضف المتغيرات المعنية إلى بداية أمر docker compose.
على سبيل المثال، لعرض النظام على جميع واجهات الشبكة.
LISTEN_IP="0.0.0.0" docker compose -f docker-compose.yml --compatibility up -d
curl.exe -L -o crapi.zip https://github.com/OWASP/crAPI/archive/refs/heads/develop.zip
tar -xf .\crapi.zip
cd crAPI-develop/deploy/docker
docker compose pull
docker compose -f docker-compose.yml --compatibility up -d
لتجاوز إعدادات الخادم، قم بتغيير قيم المتغيرات الموجودة في ملف .env أو أضف المتغيرات المعنية إلى بداية أمر docker compose.
على سبيل المثال، لعرض النظام على جميع واجهات الشبكة.
LISTEN_IP="0.0.0.0" docker compose -f docker-compose.yml --compatibility up -d