
Kurukshetra - إطار عمل لتعليم البرمجة الآمنة من خلال حل المشكلات التفاعلي.
كوروكشيترا هو إطار ويب تم تطويره بهدف أن يكون أول إطار مفتوح المصدر يوفر أساسًا متينًا لاستضافة تحديات البرمجة الآمنة المعقدة إلى حد معقول، مع الاحتفاظ بالقدرة على تنفيذ كل تحدي بكفاءة وديناميكية بناءً على إدخال المستخدم في بيئة معزولة وآمنة (sandbox).
يتكون كوروكشيترا من مكونين: الإطار الخلفي (backend) المكتوب بلغة PHP، والذي يدير ويستفيد من نظام Docker الأساسي لتوفير الصندوق الرمل الآمن لتنفيذ التحديات، والواجهة الأمامية (frontend)، وهي تطبيق ويب موجه للمستخدم يوفر جميع أدوات التحكم اللازمة، للمسؤول لاستضافة وتعديل التحديات، وللمستخدم لتنفيذ وعرض نتيجة كل إدخال له.
تم اختبار كوروكشيترا على كل من Ubuntu/Debian (توزيعات apt-get) وكذلك على Mac OS. من الناحية المثالية، يجب أن يعمل مع أي توزيعة لينكس مثبت عليها PHP 7.2 و MySQL و Docker (مع تمكين API البعيد).
هناك عدد قليل من الحزم الضرورية قبل الشروع في التثبيت:
sudo apt-get install gitsudo apt-get install php7.2-curl php7.2-mbstring php7.2-mysql)sudo apt-get install mysql-server/var/config/ بصلاحية الكتابة لمستخدم www-dataالتثبيت بسيط مثل نقل الملفات التي تم تنزيلها إلى جذر الويب:
git clone https://github.com/a0xnirudh/kurukshetra.git
cd kurukshetra
cp -r * /var/www/html/
chmod 755 -R /var/www/html
/var/www/html): cp -r kurukshetra/* /var/www/htmlchmod 755 -R /var/www/html/challenges/uploads لمستخدم www-data (انظر uploads/README.md).http://localhost أو http://127.0.0.1 للانتقال إلى التثبيت (سيتم إعادة التوجيه تلقائيًا إلى /installation/).
Client ID و Client secret الخاص بـ Google OAuth وتأكد من أن عنوان URL لإعادة التوجيه مضبوط على المسار http://your-domain.com/login/index.phpيستخدم كوروكشيترا واجهات برمجة تطبيقات Docker لتشغيل الكود المقدم من المستخدم. يلزم إجراء تكوين لمرة واحدة قبل أن نتمكن من استخدام واجهات برمجة تطبيقات Docker على النحو التالي:
docker pull phusion/baseimage:latestcd installation/optional/docker build -t kurukshetra .بدلاً من ذلك، يمكنك ببساطة تشغيل python install.py من داخل الدليل installation/optional والذي سيقوم بتثبيت Docker (إذا لم يكن مثبتًا بالفعل) وسيقوم بتكوين صورة Docker الخاصة بكوروكشيترا تلقائيًا.
فيما يلي بعض الأفكار التي لدينا في الاعتبار للمضي قدمًا مع كوروكشيترا. إذا كانت لديك أي أفكار/طلبات ميزات غير مدرجة أدناه، فلا تتردد في فتح issue في github.
أشخاص رائعون بنوا هذا المشروع:
أنيرود أناند (@a0xnirudh)
موهان ك. ك. (@MohanKallepalli)
أرجون تي يو (@arjunkikz)
دورجا سابرامانيان (@0xdug)
أنكور بهارغافا (@_AnkurB)
براجال كولكارني (@prajalkulkarni)