
OWASP Enterprise Security API लाइब्रेरी जो Java वेब अनुप्रयोगों के लिए सुरक्षा नियंत्रण प्रदान करती है, जिसमें प्रमाणीकरण, अभिगम नियंत्रण, इनपुट सत्यापन, एन्क्रिप्शन और एन्कोडिंग शामिल हैं, ताकि भेद्यता जोखिम को कम किया जा सके।
| OWASP® ESAPI (OWASP एंटरप्राइज सिक्योरिटी API) एक मुफ्त, ओपन सोर्स, वेब एप्लिकेशन सुरक्षा नियंत्रण लाइब्रेरी है जो प्रोग्रामरों के लिए कम जोखिम वाले एप्लिकेशन लिखना आसान बनाती है। जावा के लिए ESAPI लाइब्रेरी को मौजूदा एप्लिकेशन में सुरक्षा को रेट्रोफिट करना प्रोग्रामरों के लिए आसान बनाने के लिए डिज़ाइन किया गया है। जावा के लिए ESAPI नए विकास के लिए एक ठोस आधार के रूप में भी कार्य करता है। |
आप OWASP ESAPI विकी पृष्ठों को https://owasp.org/www-project-enterprise-security-api/ पर पा सकते हैं। ESAPI लेगसी GitHub रेपो में भी कुछ उपयोगी विकी पृष्ठ हैं।
यह ESAPI की लेगसी शाखा है, जिसका अर्थ है कि यह परियोजना की एक सक्रिय रूप से अनुरक्षित शाखा है, हालांकि इस शाखा के लिए महत्वपूर्ण *नए* फीचर विकास *नहीं* किया जाएगा। जो फीचर पहले से 2.x शाखा के लिए निर्धारित किए गए हैं, वे आगे बढ़ेंगे। आपको वह GitHub रिपॉजिटरी [https://github.com/ESAPI/esapi-java-legacy](https://github.com/ESAPI/esapi-java-legacy) पर मिलेगी।
महत्वपूर्ण नोट: ESAPI लेगसी के लिए डिफ़ॉल्ट शाखा अब 'develop' शाखा है (पहले 'main' (पूर्व में 'master') शाखा के बजाय), जहां भविष्य के विकास, बग फिक्स आदि अब किए जाएंगे। 'main' शाखा को अब "संरक्षित" के रूप में चिह्नित किया गया है; यह नवीनतम स्थिर ESAPI रिलीज़ (इस तिथि तक 2.1.0.1) को दर्शाता है। ध्यान दें कि डिफ़ॉल्ट शाखा को 'develop' बनाने का यह परिवर्तन आपके द्वारा किए जाने वाले किसी भी पुल अनुरोध को प्रभावित कर सकता है।
इसके अलावा, ESAPI का उपयोग करने के लिए न्यूनतम बेसलाइन Java संस्करण Java 7 है। (2.2.0.0 रिलीज़ के दौरान इसे Java 6 से बदल दिया गया था।)
https://github.com/ESAPI/esapi-java
ध्यान दें कि ESAPI 3 पर काम अभी तक गंभीरता से शुरू नहीं हुआ है और केवल अपने शुरुआती योजना चरणों में है। वर्तमान में मौजूद कोड भी संभवतः बदल जाएगा।
ESAPI रिलीज़ नोट्स ESAPI की "documentation" निर्देशिका में पाए जा सकते हैं। वे आमतौर पर "esapi4java-core-2.#.#.#-release-notes.txt" नाम से होते हैं, जहाँ "2.#.#.#" ESAPI रिलीज़ नंबर को संदर्भित करता है (जो सिमैंटिक वर्जनिंग का उपयोग करता है)।
ESAPI 2.2.3.0 से शुरू करके, ESAPI AntiSamy के एक संस्करण का उपयोग कर रहा है जो डिफ़ॉल्ट रूप से 'slf4j-simple' शामिल करता है और AntiSamy नीति फ़ाइलों पर XML स्कीमा सत्यापन करता है। कृपया 2.2.3.0 रिलीज़ के रिलीज़ नोट्स (कम से कम शुरुआती भाग) को पढ़ें कुछ महत्वपूर्ण नोट्स के लिए जो संभवतः ESAPI के आपके उपयोग को प्रभावित करेंगे! आपको चेतावनी दी गई है!!!
नवीनतम ESAPI रिलीज़ 2.2.3.0 है। डिफ़ॉल्ट कॉन्फ़िगरेशन jar और इसका GPG हस्ताक्षर क्रमशः esapi-2.2.3.0-configuration.jar और esapi-2.2.3.0-configuration.jar.asc पर पाए जा सकते हैं।
नवीनतम नियमित ESAPI jarls Maven Central से उपलब्ध हैं।
हालाँकि, ESAPI का उपयोग करके एक नया प्रोजेक्ट शुरू करने से पहले, "क्या मुझे ESAPI का उपयोग करना चाहिए?" पढ़ना सुनिश्चित करें।
जब तक हम अनजाने में गड़बड़ी न करें, हमारा इरादा उन कक्षाओं, विधियों और/या फ़ील्ड को रखना है जिन्हें "@deprecated" के रूप में एनोटेट किया गया है, कम से कम दो (2) वर्षों के लिए या अगले प्रमुख रिलीज़ नंबर (जैसे, अब 3.x) तक, जो भी पहले आए, उन्हें हटाने से पहले। ध्यान दें कि यह नीति org.owasp.esapi.reference पैकेज के अंतर्गत कक्षाओं पर लागू नहीं होती है। आपसे अपेक्षा नहीं की जाती है कि आप अपने कोड में ऐसी कक्षाओं का सीधे उपयोग करें।
फोर्क करें और पुल अनुरोध सबमिट करें! पाई जितना आसान! हम आम तौर पर केवल बग फिक्स स्वीकार करते हैं, नई सुविधाएँ नहीं, क्योंकि एक लेगसी प्रोजेक्ट के रूप में, हम नई सुविधाएँ जोड़ने का इरादा नहीं रखते हैं, हालाँकि हम अपवाद बना सकते हैं। यदि आप कोई नई सुविधा प्रस्तावित करना चाहते हैं, तो इस पर चर्चा करने का सबसे अच्छा स्थान नीचे उल्लिखित ESAPI-DEV मेलिंग सूची है। ध्यान दें कि हम सभी पुल अनुरोधों की जाँच करते हैं, जिसमें किसी भी योगदान की कोडिंग शैली भी शामिल है; उन फ़ाइलों में पाई गई समान कोडिंग शैली का उपयोग करें जिन्हें आप पहले से संपादित कर रहे हैं।
यदि आप ESAPI में नए हैं, तो शुरू करने के लिए एक अच्छी जगह 'good first issue' लेबल वाले GitHub मुद्दों की तलाश करना है। (उदाहरण के लिए, उस लेबल वाले सभी खुले मुद्दों को खोजने के लिए, https://github.com/ESAPI/esapi-java-legacy/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22 का उपयोग करें।)
आप फ़ाइल 'CONTRIBUTING-TO-ESAPI.txt' में अतिरिक्त विवरण पा सकते हैं।
मध्य-2014 में ESAPI ने सभी कोड GitHub पर स्थानांतरित कर दिए। यह स्थानांतरण नवंबर 2014 में पूरा हुआ।
Google कोड के सभी मुद्दों को GitHub मुद्दों पर स्थानांतरित कर दिया गया है। हमारे पास एक JIRA/Confluence इंस्टेंस आवंटित है, लेकिन इसे GitHub मुद्दों के साथ सिंक्रोनाइज़ करने के लिए कॉन्फ़िगर नहीं किया गया है, और इस प्रकार इसका उपयोग नहीं किया जाना चाहिए। JIRA ठीक है, लेकिन अगर हम इसे GitHub मुद्दों (जहाँ हमारे अधिकांश उपयोगकर्ता मुद्दों की रिपोर्ट करते हैं) के साथ सिंक्रोनाइज़ नहीं कर सकते, तो यह उपयोग योग्य नहीं है। डेवलपर्स के रूप में, हम कई बग-ट्रैकिंग साइटों से मुद्दों को बंद करने में समय नहीं बिताना चाहते। इसलिए, जब तक यह सिंक्रोनाइज़ेशन नहीं हो जाता (GitHub मुद्दा #371 देखें), कृपया बग रिपोर्ट करने के लिए केवल GitHub का उपयोग करें।
किसी मुद्दे की रिपोर्ट करते समय, कृपया स्पष्ट रहें और सुनिश्चित करें कि ESAPI विकास टीम के पास आपके परिणामों को पुन: उत्पन्न करने में सक्षम होने के लिए पर्याप्त जानकारी हो। यदि आपने पहले से ऐसा नहीं किया है, तो अपना मुद्दा पोस्ट करने से पहले एरिक एस. रेमंड का क्लासिक "How to Ask Questions the Smart Way" http://www.catb.org/esr/faqs/smart-questions.html पर पढ़ने का यह एक अच्छा समय हो सकता है।
यदि आपको कोई बग मिला है, तो esapi-legacy-java रेपो पर एक मुद्दा बनाएं: https://github.com/ESAPI/esapi-java-legacy/issues
नोट: कृपया ESAPI के बारे में प्रश्न पूछने के लिए GitHub मुद्दों का उपयोग न करें। यदि आप ऐसा करना चाहते हैं, तो इस पृष्ठ के नीचे स्थित दो मेलिंग सूचियों (अब Google Groups पर) में से किसी एक पर पोस्ट करें। यदि हम GitHub मुद्दों के रूप में प्रश्न पाते हैं, तो हम बस उन्हें बंद कर देंगे और आपको ऐसा करने का निर्देश देंगे।