मूल विचार यह है कि आप कोड में या संकलित बाइनरी में गोपनीय मूल्यों की जांच नहीं करते हैं । खासकर अगर परियोजना खुला स्रोत है तो आपको वास्तव में नहीं करना चाहिए। ऐसा करने के लिए आप कई कॉन्फ़िगरेशन रणनीतियाँ ले सकते हैं:
कोड में प्लेसहोल्डर (हार्डककोड मान)
कोड में प्लेसहोल्डर - जैसा कि सुझाव दिया गया था - जो कि गतिशील प्रोग्रामिंग भाषाओं में सबसे अधिक सरल और आसान है क्योंकि कोड को बदलना आसान है (संकलन करने की आवश्यकता के बिना)। मैंने बहुत सारे ओपन सोर्स प्रोजेक्ट्स देखे हैं जैसे कि MediaWiki इसके साथ है LocalSettings.php
।
इस रणनीति के साथ नकारात्मक पक्ष यह है कि कुंजी hardcoded किया जाता है। इसलिए यदि प्रोग्राम को बाइनरी के रूप में वितरित किया जाता है, तो कुंजी हार्ड-कोडित होने से यह विशेष रूप से बनाए रखने योग्य नहीं होता है।
विन्यास पाठ फ़ाइलें
आप इसे कॉन्फ़िगरेशन पाठ फ़ाइलों को लागू करके भी कर सकते हैं , अर्थात प्रोग्राम / एप्लिकेशन कॉन्फ़िगरेशन फ़ाइल के लिए खोज करता है और इससे मान पढ़ता है। आप प्लेसहोल्डर्स के साथ एक नमूना कॉन्फ़िगरेशन में चेक-इन कर सकते हैं, लेकिन आपकी मशीन में वास्तविक कॉन्फ़िगरेशन स्थानीय है।
आपके मामले में आप key.conf
वास्तविक कुंजी के साथ एक पाठ फ़ाइल बना सकते हैं , प्रोग्राम को उस फ़ाइल का उपयोग करने दें और इसे संस्करण नियंत्रण द्वारा अनदेखा कर दें। आप मददगार होने के लिए, key.conf.example
एक बोगस कुंजी के साथ एक पाठ फ़ाइल में जांच कर सकते हैं और उस-में मदद कर सकते हैं। सुनिश्चित करें कि आपका प्रोग्राम / एप्लिकेशन उपयोगकर्ता के लिए सही फ़ाइल में वास्तविक कुंजी जोड़ने के लिए एक उपयोगी त्रुटि संदेश बनाता है।
कुछ प्रोग्रामिंग भाषाओं में एपीआई होते हैं जो आपके लिए यह स्वचालित रूप से प्रदान करते हैं, जैसे:
यदि आपका एप्लिकेशन एक डेटाबेस ऐप है, तो डेटाबेस में कुंजी या अन्य कॉन्फ़िगरेशन चर डालने पर विचार करें। यह ऊपर कॉन्फ़िगरेशन पाठ फ़ाइल के समान है, लेकिन आप इसके बजाय डेटाबेस तालिका में कुंजी जैसे सभी कॉन्फ़िगरेशन चर डालते हैं।
वरीयताओं को देखने या एक बैक ऑफिस ऐप के माध्यम से
यदि प्रोग्राम एक खिड़की या विचारों के साथ एक वेब अनुप्रयोग है, तो आप एप्लिकेशन को कॉन्फ़िगरेशन फ़ाइल बनाने के लिए भी दे सकते हैं, वरीयताओं के दृश्य के माध्यम से। इस तरह से आपको ऊपर दिए गए सुझाव के अनुसार एक उदाहरण कॉन्फ़िगर फ़ाइल में जांच करने की आवश्यकता नहीं है।
मीडियाविकि ने LocalSettings.php
प्रारंभिक इंस्टॉलेशन प्रक्रिया में फ़ाइल को ऑटो-जेनरेट करके इसे हल किया ।
बेशक यह उन कार्यक्रमों के लिए एक विकल्प नहीं है जो केवल पृष्ठभूमि प्रक्रियाओं, सेवाओं या डेमॉन के रूप में चलते हैं। हालाँकि, इसीलिए आप अलग-अलग GUI प्रोजेक्ट बनाते हैं, ताकि प्रशासन और वरीयताओं की सेटिंग्स के लिए एक बिंदु बनाया जा सके, वेब ऐप्स में आमतौर पर बैक ऑफिस एप्लिकेशन कहा जाता है ।