
Kurukshetra - एक ढांचा जो इंटरैक्टिव समस्या समाधान के माध्यम से सुरक्षित कोडिंग सिखाने के लिए है।
Kurukshetra एक वेब फ्रेमवर्क है जिसे पहले ओपन सोर्स फ्रेमवर्क होने के उद्देश्य से विकसित किया गया है, जो सुरक्षित कोडिंग चुनौतियों को होस्ट करने के लिए एक ठोस आधार प्रदान करता है, साथ ही प्रत्येक चुनौती को उपयोगकर्ता इनपुट के आधार पर एक सुरक्षित सैंडबॉक्स वातावरण में कुशलतापूर्वक और गतिशील रूप से निष्पादित करने की क्षमता भी प्रदान करता है।
Kurukshetra दो घटकों से बना है: बैकएंड फ्रेमवर्क जो PHP में लिखा गया है, जो चुनौती निष्पादन के लिए सुरक्षित सैंडबॉक्स प्रदान करने के लिए अंतर्निहित डॉकर सिस्टम का प्रबंधन और लाभ उठाता है, और फ्रंटएंड, जो एक उपयोगकर्ता-मुखी वेब ऐप है, जो एडमिन को चुनौतियों को होस्ट और संशोधित करने और उपयोगकर्ता को अपने प्रत्येक इनपुट का परिणाम निष्पादित और देखने के लिए सभी आवश्यक नियंत्रण प्रदान करता है।
Kurukshetra का Ubuntu/Debian (apt-get आधारित डिस्ट्रो) और Mac OS दोनों पर परीक्षण किया गया है। यह आदर्श रूप से PHP 7.2, MySQL और Docker (साथ ही remote API enabled) स्थापित किसी भी लिनक्स-आधारित वितरण पर काम करना चाहिए।
स्थापना के साथ आगे बढ़ने से पहले कुछ पैकेज आवश्यक हैं:
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 दर्ज करें और सुनिश्चित करें कि रीडायरेक्ट URL पथ http://your-domain.com/login/index.php पर सेट है।Kurukshetra उपयोगकर्ता द्वारा सबमिट किए गए कोड को चलाने के लिए Docker API का उपयोग करता है। Docker API का उपयोग करने से पहले एक बार कॉन्फ़िगरेशन आवश्यक है, जो इस प्रकार है:
docker pull phusion/baseimage:latestcd installation/optional/docker build -t kurukshetra .वैकल्पिक रूप से, आप निर्देशिका installation/optional के अंदर से केवल python install.py चला सकते हैं, जो Docker को स्थापित करेगा (यदि पहले से स्थापित नहीं है) और स्वचालित रूप से Kurukshetra Docker इमेज कॉन्फ़िगर करेगा।
Kurukshetra के साथ आगे बढ़ने के लिए हमारे मन में कुछ विचार हैं। यदि आपके पास कोई विचार/सुविधा अनुरोध है जो नीचे सूचीबद्ध नहीं है, तो github में issue उठाने में संकोच न करें।
JAVA, NodeJs और Ruby on Rails तक सीमित नहीं, अधिक भाषाओं के लिए समर्थन।
OWASP टॉप 10 सभी कमजोरियों को कवर करने के लिए यूनिटटेस्ट के साथ और अधिक चुनौतियाँ लिखें।
चुनौती हल करने के अंकों (कठिनाई के आधार पर चुनौतियों के लिए पूर्वनिर्धारित अंक पहले से उपलब्ध हैं) के आधार पर स्कोरबोर्ड शुरू करके पूरे फ्रेमवर्क का गेमिफिकेशन।
इस परियोजना को बनाने वाले अद्भुत लोग:
Anirudh Anand (@a0xnirudh)
Mohan KK (@MohanKallepalli)
Arjun T U (@arjunkikz)
Durga Subramanian (@0xdug)
Ankur Bhargava (@_AnkurB)
Prajal Kulkarni (@prajalkulkarni)