
يوفر مشروع OWASP NodeGoat بيئة لتعلم كيفية تطبيق مخاطر OWASP Top 10 الأمنية على تطبيقات الويب المطورة باستخدام Node.js وكيفية معالجتها بفعالية.
نظرًا لكون Node.js خفيفة الوزن وسريعة وقابلة للتوسع، فقد أصبحت منصة معتمدة على نطاق واسع لتطوير تطبيقات الويب. يوفر هذا المشروع بيئة لتعلم كيفية تطبيق مخاطر OWASP Top 10 الأمنية على تطبيقات الويب المطورة باستخدام Node.js وكيفية معالجتها بفعالية.
OWASP Top 10 لتطبيقات الويب Node.js:
يحتوي هذا التطبيق على صفحة تعليمية تشرح ثغرات OWASP Top 10 وكيفية إصلاحها.
بمجرد تشغيل التطبيق، يمكنك الوصول إلى الصفحة التعليمية على http://localhost:4000/tutorial (أو المنفذ الذي قمت بتكوينه).
تطبيق Node.js ضعيف للنينجا لاستغلاله، وتحليله، وإصلاحه. قد ترغب في إعداد نسختك الخاصة من التطبيق لإصلاح واختبار الثغرات. تلميح: ابحث عن التعليقات في كود المصدر.
تأتي قاعدة البيانات محملة مسبقًا بحسابات المستخدمين هذه التي تم إنشاؤها كجزء من البيانات الأولية -
admin p:Admin_123user1 p:User1_123)، (u:user2 p:User2_123)قم بتثبيت Node.js - يتطلب NodeGoat إصدار Node v8 أو أعلى
استنسخ مستودع GitHub:
git clone https://github.com/OWASP/NodeGoat.git
انتقل إلى الدليل:
cd NodeGoat
قم بتثبيت حزم Node:
npm install
قم بإعداد MongoDB. يمكنك إما تثبيت MongoDB محليًا أو إنشاء مثيل بعيد:
استخدام MongoDB محلي:
استخدام مثيل MongoDB بعيد:
MONGODB_URI إلى سلسلة الاتصال الخاصة بالكتلة، والتي يمكن عرضها في
حوار الاتصال للكتلة. اختر "Connect your application"،
واضبط المحرك على "Node.js" والإصدار على "2.2.12 or later". سيعطيك هذا سلسلة اتصال بالشكل:
mongodb://<username>:<password>@<cluster>/<dbname>?ssl=true&replicaSet=<rsname>&authSource=admin&retryWrites=true&w=majority
<username> و <password> بتفاصيل مستخدم قاعدة البيانات المضاف سابقًا. حقل <dbname> يحدد اسم قاعدة البيانات التي سيستخدمها nodegoat في الكتلة (مثل "nodegoat"). سيتم ملء الحقول الأخرى بالفعل بالتفاصيل الصحيحة للكتلة الخاصة بك.قم بتعبئة MongoDB بالبيانات الأولية المطلوبة للتطبيق:
npm run db:seed
افتراضيًا، سيستخدم هذا التكوين "development"، ولكن يمكن تمرير التكوين المطلوب كوسيطة إذا لزم الأمر.
ابدأ الخادم. يمكنك تشغيل الخادم باستخدام node أو nodemon:
npm start
npm run dev
افتراضيًا، سيتم استضافة التطبيق على المنفذ 4000 وسيتصل بمثيل MongoDB على localhost:27017. لتغيير ذلك، قم بتعيين متغيرات البيئة PORT و MONGODB_URI.
يمكن تغيير الإعدادات الأخرى عن طريق تحديث ملف التكوين.
يتضمن المستودع ملف Dockerfile و docker-compose.yml اللازمين لإعداد التطبيق ومثيل قاعدة البيانات، ثم ربطهما معًا.
قم بتثبيت docker و docker compose
استنسخ مستودع GitHub:
git clone https://github.com/OWASP/NodeGoat.git
انتقل إلى الدليل:
cd NodeGoat
قم ببناء الصور:
docker-compose build
شغّل التطبيق، هذا يبدأ تطبيق NodeGoat على http://localhost:4000/:
docker-compose up
يستخدم هذا الخيار خادم Heroku مجاني ($0/شهر).
على الرغم من أنه ليس ضروريًا، إلا أنه يُوصى بعمل fork لهذا المستودع ونشر المستودع المُفورك. سيسمح لك هذا بإصلاح الثغرات في نسختك المفوركة، ثم نشرها واختبارها على Heroku.
قم بإعداد مثيل MongoDB عام الوصول:
انشر NodeGoat على Heroku بالضغط على الزر أدناه:
في مربع حوار Create New App، قم بتعيين المتغير التكويني MONGODB_URI إلى سلسلة الاتصال الخاصة بكتلة MongoDB Atlas الخاصة بك.
يمكن عرض ذلك في حوار الاتصال للكتلة.
اختر "Connect your application"، واضبط المحرك على "Node.js" والإصدار على "2.2.12 or later".
سيعطيك هذا سلسلة اتصال بالشكل:
mongodb://<username>:<password>@<cluster>/<dbname>?ssl=true&replicaSet=<rsname>&authSource=admin&retryWrites=true&w=majority
يجب ملء حقول <username> و <password> بتفاصيل مستخدم قاعدة البيانات المضاف سابقًا. حقل <dbname> يحدد اسم قاعدة البيانات التي سيستخدمها nodegoat في الكتلة (مثل "nodegoat"). سيتم ملء الحقول الأخرى بالفعل بالتفاصيل الصحيحة للكتلة الخاصة بك.
يرجى اتباع دليل المساهمة
هذا المشروع ملزم بـ مدونة السلوك.
هنا المساهمون الرائعون في مشروع NodeGoat.
الكود مرخص بموجب رخصة Apache v2.0.