टी एल; डॉ
कॉन्फ़िगरेशन फ़ाइलों के बजाय पर्यावरण चर का उपयोग करने के कई कारण हैं, लेकिन अनदेखी करने के लिए सबसे आम लोगों में से दो आउट-ऑफ-बैंड कॉन्फ़िगरेशन की उपयोगिता मान और सर्वर, एप्लिकेशन या संगठनात्मक भूमिकाओं के बीच अलग - अलग पृथक्करण है । सभी संभावित कारणों की एक विस्तृत सूची पेश करने के बजाय, मैं अपने उत्तर में सिर्फ इन दो विषयों को संबोधित करता हूं, और उनके सुरक्षा निहितार्थ पर हल्के से स्पर्श करता हूं।
आउट-ऑफ-बैंड कॉन्फ़िगरेशन: स्रोत कोड से राज को अलग करना
यदि आप कॉन्फ़िगरेशन फ़ाइल में अपने सभी रहस्यों को संग्रहीत करते हैं, तो आपको उन रहस्यों को प्रत्येक सर्वर पर वितरित करना होगा। इसका मतलब है कि आपके कोड के साथ संशोधन नियंत्रण में रहस्यों की जांच करना, या रहस्यों के लिए एक पूरी तरह से अलग भंडार या वितरण तंत्र होना।
अपने रहस्यों को एन्क्रिप्ट करना वास्तव में इसके लिए हल करने में मदद नहीं करता है। जो सब करता है वह मुद्दे को एक हटाने के लिए प्रेरित करता है, क्योंकि अब आपको प्रमुख प्रबंधन और वितरण के बारे में चिंता करनी होगी!
संक्षेप में, जब आप संचालन से विकास को अलग करना चाहते हैं, तो पर्यावरण चर प्रति स्रोत सर्वर से प्रति-सर्वर या प्रति-अनुप्रयोग डेटा को स्थानांतरित करने के लिए एक दृष्टिकोण है। यह विशेष रूप से महत्वपूर्ण है यदि आपने स्रोत कोड प्रकाशित किया है!
एन्हांस पृथक्करण: सर्वर, अनुप्रयोग और रोल्स
यदि आपके पास निश्चित रूप से आपके रहस्यों को रखने के लिए एक कॉन्फ़िगरेशन फ़ाइल हो सकती है, यदि आप रहस्यों को स्रोत कोड में संग्रहीत करते हैं, तो आपके पास एक विशिष्ट समस्या है। क्या आपके पास रहस्यों के प्रत्येक सेट के लिए एक अलग शाखा या भंडार है? आप यह सुनिश्चित करते हैं कि सही सर्वरों के लिए रहस्यों का सही सेट कैसे प्राप्त होता है? या क्या आप "रहस्य" होने से सुरक्षा को कम करते हैं जो हर जगह समान हैं (या हर जगह पठनीय हैं, यदि आपके पास एक फ़ाइल में सभी हैं), और इसलिए किसी भी एक सिस्टम के सुरक्षा नियंत्रण विफल होने पर एक बड़ा जोखिम होता है?
यदि आप प्रत्येक सर्वर पर या प्रत्येक अनुप्रयोग के लिए अद्वितीय रहस्य रखना चाहते हैं, तो वातावरण चर फ़ाइलों की एक भीड़ का प्रबंधन करने की समस्या को दूर करते हैं। यदि आप एक नया सर्वर, एप्लिकेशन, या भूमिका जोड़ते हैं, तो आपको नई फ़ाइलें बनाने या पुराने अपडेट करने की आवश्यकता नहीं है: आप सिस्टम के वातावरण को केवल अपडेट करते हैं।
सुरक्षा पर बिदाई विचार
हालांकि कर्नेल / मेमोरी / फ़ाइल सुरक्षा का गहन अन्वेषण इस उत्तर के लिए गुंजाइश से बाहर है, यह इंगित करने योग्य है कि ठीक से लागू किया गया, प्रति-सिस्टम वातावरण चर "एन्क्रिप्टेड" रहस्यों से कम सुरक्षित नहीं हैं। या तो मामले में, लक्ष्य प्रणाली को अभी भी मेमोरी में डिक्रिप्टेड रहस्य को किसी बिंदु पर पकड़ना है ताकि इसका उपयोग किया जा सके।
यह भी ध्यान देने योग्य है कि जब किसी दिए गए नोड पर अस्थिर स्मृति में मान संग्रहीत किए जाते हैं, तो कोई भी डिस्क-डिस्क फ़ाइल नहीं होती है जिसे कॉपी और ऑफ़लाइन हमला किया जा सकता है। इसे आमतौर पर इन-मेमोरी रहस्यों का एक फायदा माना जाता है, लेकिन यह निश्चित रूप से निर्णायक नहीं है।
पर्यावरणीय चर बनाम अन्य रहस्य-प्रबंधन तकनीकों का मुद्दा वास्तव में सुरक्षा और प्रयोज्य व्यापार-नापसंद के बारे में अधिक है क्योंकि यह निरपेक्षता के बारे में है। आपकी माइलेज भिन्न हो सकती है।