
The OWASP NodeGoat project provides an environment to learn how OWASP Top 10 security risks apply to web applications developed using Node.js and how to effectively address them.
हल्का, तेज़ और स्केलेबल होने के कारण, Node.js वेब अनुप्रयोगों के विकास के लिए व्यापक रूप से अपनाया जा रहा प्लेटफॉर्म बनता जा रहा है। यह प्रोजेक्ट एक ऐसा वातावरण प्रदान करता है जहां आप सीख सकते हैं कि OWASP Top 10 सुरक्षा जोखिम Node.js का उपयोग करके विकसित वेब अनुप्रयोगों पर कैसे लागू होते हैं और उन्हें प्रभावी ढंग से कैसे संबोधित किया जाए।
Node.js वेब अनुप्रयोगों के लिए OWASP Top 10:
इस एप्लिकेशन में एक ट्यूटोरियल पेज शामिल है जो 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
नोड पैकेज इंस्टॉल करें:
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
डिफ़ॉल्ट रूप से एप्लिकेशन पोर्ट 4000 पर होस्ट किया जाएगा और localhost:27017 पर एक MongoDB इंस्टेंस से कनेक्ट होगा। इसे बदलने के लिए PORT और MONGODB_URI पर्यावरण चर सेट करें।
कॉन्फ़िग फ़ाइल को अपडेट करके अन्य सेटिंग्स बदली जा सकती हैं।
रिपॉजिटरी में ऐप और db इंस्टेंस को सेट अप करने और फिर उन्हें एक साथ जोड़ने के लिए आवश्यक Dockerfile और docker-compose.yml शामिल हैं।
docker और docker compose इंस्टॉल करें
github रिपॉजिटरी क्लोन करें:
git clone https://github.com/OWASP/NodeGoat.git
निर्देशिका में जाएँ:
cd NodeGoat
इमेज बनाएं:
docker-compose build
ऐप चलाएँ, यह http://localhost:4000/ पर NodeGoat एप्लिकेशन प्रारंभ करता है:
docker-compose up
यह विकल्प एक मुफ्त ($0/माह) Heroku नोड सर्वर का उपयोग करता है।
हालांकि आवश्यक नहीं है, यह अनुशंसा की जाती है कि आप इस रिपॉजिटरी को फोर्क करें और फोर्क की गई रिपॉजिटरी को तैनात करें। इससे आप अपने स्वयं के फोर्क किए गए संस्करण में कमजोरियों को ठीक कर सकेंगे, फिर उन्हें 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 License v2.0. के तहत लाइसेंस प्राप्त है।
<username><password><dbname>ऐप के लिए आवश्यक सीड डेटा के साथ MongoDB को पॉप्युलेट करें:
npm run db:seed
डिफ़ॉल्ट रूप से यह "development" कॉन्फ़िगरेशन का उपयोग करेगा, लेकिन यदि आवश्यक हो तो वांछित कॉन्फ़िगरेशन को तर्क के रूप में पास किया जा सकता है।
सर्वर प्रारंभ करें। आप node या nodemon का उपयोग करके सर्वर चला सकते हैं:
npm start
npm run dev