अपनी निजी चाबियों को कोड रिपॉजिटरी से बाहर रखना सुरक्षा के लिए महत्वपूर्ण है। पता करें कि ऐसा कैसे करना है और यदि आप पहले ही गलती कर चुके हैं तो कैसे ठीक हो सकते हैं।

Django में, एक गुप्त कुंजी आपके आवेदन की सुरक्षा बढ़ाने में महत्वपूर्ण भूमिका निभाती है। यह उपयोगकर्ता सत्रों को प्रबंधित करने में मदद करता है, क्रॉस-साइट अनुरोध जालसाजी (CSRF) हमलों से बचाता है, और अन्य बातों के अलावा क्रिप्टोग्राफ़िक हस्ताक्षर उत्पन्न और सत्यापित करके आपके डेटा की सुरक्षा करता है।

आपको अपने प्रोजेक्ट की गुप्त कुंजी को हर समय सुरक्षित रखना चाहिए। इसे उजागर करने से आपके एप्लिकेशन को हैकर्स द्वारा दुर्भावनापूर्ण हमलों के लिए अतिसंवेदनशील बना दिया जाएगा, इसकी सुरक्षा से समझौता किया जाएगा। यदि आपकी गुप्त कुंजी से समझौता किया जाता है, तो आपको पता होना चाहिए कि आपके आवेदन पर नकारात्मक प्रभाव को कम करने के लिए एक नया कैसे उत्पन्न किया जाए।

आपका Django गुप्त कुंजी कैसे उजागर हो सकता है?

यदि आप अनजाने में इसे गिट या इसी तरह के स्रोत कोड भंडार में प्रतिबद्ध करते हैं तो आप गलती से अपने Django गुप्त कुंजी को सार्वजनिक कर सकते हैं। यह गलती नए प्रोग्रामरों में आम है जो अभी भी हैं

GitHub के बारे में सीखना. जब ऐसा होता है, तो आप निम्न में से कोई एक कर सकते हैं:

  1. कमिटमेंट को डिलीट करें।
  2. गुप्त कुंजी को पूरी तरह से बदलें।

कमिट को हटाना सबसे अच्छा विकल्प नहीं हो सकता है क्योंकि कमिट इतिहास को अभी भी विभिन्न माध्यमों से एक्सेस किया जा सकता है, जैसे कि GitHub या अन्य वितरित सिस्टम पर कैश्ड कॉपी। ऐसी स्थिति में करने के लिए सबसे सुरक्षित बात यह मान लेना है कि आपकी गुप्त कुंजी पहले ही समझौता हो चुकी है।

आपको समझौता किए गए को बदलने के लिए एक नई गुप्त कुंजी उत्पन्न करनी चाहिए और पर्यावरण चर का उपयोग करके इसकी रक्षा करनी चाहिए। किसी भी मामले में, आपको सीखना चाहिए कि अपने ऐप को चीजों से बचाने के लिए Django में एक नई गुप्त कुंजी कैसे उत्पन्न करें क्रॉस-साइट अनुरोध जालसाजी (CSRF) हमले.

कैसे Django में एक नई गुप्त कुंजी उत्पन्न करने के लिए

Django नामक एक फ़ंक्शन प्रदान करता है get_random_secret_key () जब भी आप इसे कॉल करते हैं तो यह आपको एक नई गुप्त कुंजी उत्पन्न करने में मदद करता है। Get_random_secret_key () फ़ंक्शन एक उपयोगिता फ़ंक्शन है जो उपयोग करता है रहस्य 50 अक्षरों की एक सुरक्षित गुप्त कुंजी उत्पन्न करने के लिए पायथन में मॉड्यूल।

Get_random_secret_key() फ़ंक्शन के साथ एक नई गुप्त कुंजी उत्पन्न करने के लिए, अपना कमांड लाइन इंटरफेस (सीएलआई) और यह आदेश टाइप करें:

अजगर प्रबंधन.py शेल-सी "Django.core.management.utils से get_random_secret_key आयात करें; प्रिंट (get_random_secret_key ())"

उपरोक्त आदेश get_random_secret_key() फ़ंक्शन को आयात करता है django.core.management.utils और फिर 50 वर्णों की एक नई गुप्त कुंजी प्रिंट करता है, जिसे आप अपने प्रोजेक्ट में उपयोग कर सकते हैं। उपरोक्त आदेश चलाने से पहले, सुनिश्चित करें कि आप अपने प्रोजेक्ट की मूल निर्देशिका में हैं, यानी, उसी स्थान पर प्रबंधन.py अपने प्रोजेक्ट में फाइल करें।

आप अपने सीएलआई के बाहर एक पायथन फ़ाइल बनाकर और उसमें इस कोड स्निपेट को चिपकाकर समान कमांड चला सकते हैं:

# get_random_secret_key () फ़ंक्शन आयात करें
से django.core.management.utils आयात get_random_secret_key

गुप्त कुंजी = get_random_secret_key ()
प्रिंट (गुप्त कुंजी)

आप इसे अपने सीएलआई में टाइप करके कोड चला सकते हैं:

अजगर फ़ाइलनाम.py

उपरोक्त कमांड को 50 वर्णों की एक नई गुप्त कुंजी प्रिंट करनी चाहिए जिसे आप अपने प्रोजेक्ट में उपयोग कर सकते हैं।

पर्यावरण चर के साथ अपनी गुप्त कुंजी को कैसे सुरक्षित रखें

जब भी आप गिटहब प्रतिबद्ध करते हैं तो आप शायद अपनी गुप्त कुंजी को हर बार बदलना नहीं चाहते हैं। अपनी गुप्त कुंजी को सुरक्षित रखने का एक कुशल तरीका यह है कि इसे एक पर्यावरण चर में संग्रहित किया जाए। पर्यावरण चर वे मान हैं जिन्हें आप अपने कोडबेस के बाहर सेट कर सकते हैं, जिन्हें आपका प्रोग्राम अभी भी रनटाइम के दौरान एक्सेस कर सकता है। वे कॉन्फ़िगरेशन, एपीआई कुंजी, डेटाबेस प्रमाण-पत्र इत्यादि स्टोर कर सकते हैं।

आप अपने पर्यावरण चर को .env नाम की फ़ाइल में संग्रहीत कर सकते हैं और उन्हें अपने git रिपॉजिटरी से बाहर कर सकते हैं। नामक फ़ाइल बनाकर ऐसा कर सकते हैं .gitignore आपके प्रोजेक्ट में। .gitignore फ़ाइल में उन फ़ाइलों और फ़ोल्डरों की सूची होती है जिन्हें Git ट्रैक नहीं करेगा।

फ़ाइल प्रकार और निर्देशिका संरचना परियोजना से परियोजना में भिन्न होती है, लेकिन समझदार डिफ़ॉल्ट हैं जो आप प्रत्येक भाषा के लिए आवेदन कर सकते हैं। आप .gitignore टेम्प्लेट्स की सूची इसमें पा सकते हैं GitHub का gitignore रिपॉजिटरी. निम्न चरण आपको दिखाते हैं कि Django में पर्यावरण चर के साथ .gitignore फ़ाइल का उपयोग कैसे करें।

1. एक .gitignore फाइल बनाएं

आपकी मूल निर्देशिका में—आपका स्थान प्रबंधन.py फ़ाइल - एक बनाएँ .gitignore फ़ाइल और इसकी सामग्री की प्रतिलिपि बनाएँ गिटहब फ़ाइल यह में। वह फाइल पायथन परियोजनाओं के लिए एक नमूना .gitignore है जो उन सामान्य फाइलों को बाहर करती है जिन्हें आप अपने रिपॉजिटरी में नहीं चाहते हैं।

वैकल्पिक रूप से, आप GitHub पर रिपॉजिटरी बनाते समय अपने प्रोजेक्ट में .gitignore फ़ाइल जोड़ सकते हैं। ऐसा करने के लिए, पर क्लिक करें गिटिग्नोर जोड़ें विकल्प, पायथन की खोज करें और इसे चुनें।

2. एक .env फ़ाइल बनाएँ

अपनी आधार निर्देशिका में, नामक एक फ़ाइल बनाएँ .env. यह फ़ाइल आपके सभी पर्यावरण चरों को संग्रहीत करेगी। अपनी गुप्त कुंजी को इस फ़ाइल में कॉपी और पेस्ट करें (इसके आस-पास के उद्धरण और रिक्त स्थान हटा दें)। यहाँ एक उदाहरण है:

SECRET_KEY=x#)_v1dtrlqvc61*025t^u4*-2h^kq&fmaw-ifgkppjxpyhh1%

खोलें .gitignore फ़ाइल और पुष्टि करें कि .env फ़ाइल का नाम इसमें है। यदि यह नहीं है, तो आप इसे एक लाइन पर फ़ाइल नाम लिखकर जोड़ सकते हैं:

.env

3. अजगर-dotenv पैकेज स्थापित करें

अपना सीएलआई खोलें, और इंस्टॉल करें python-dotenv एक निर्भरता के रूप में पैकेज।

पिप अजगर-dotenv स्थापित करें

4. अपनी settings.py फ़ाइल को संशोधित करें

आप में settings.py फ़ाइल, निम्न पैकेज आयात करें:

आयात ओएस
से dotenv आयात load_dotenv

अगला, पर्यावरण चर को अपने से लोड करें .env अपने में फाइल करें settings.py कॉल करके फाइल करें load_dotenv () समारोह:

load_dotenv ()

अंत में, अपने को बदलें SECRET_KEY कोड की इस पंक्ति के साथ चर:

SECRET_KEY = os.environ.get ('SECRET_KEY')

उपरोक्त कॉन्फ़िगरेशन काम करता है यह पुष्टि करने के लिए आप अपना विकास सर्वर चला सकते हैं। यदि ऐसा होता है, तो आपकी परियोजना को आपकी अपेक्षा के अनुरूप चलना चाहिए। नीचे दिया गया आदेश आपके विकास सर्वर को प्रारंभ करेगा।

अजगर manage.py runerver

अपनी गुप्त कुंजी को पर्यावरण चर के साथ सुरक्षित रखें

एक डेवलपर के रूप में अपनी गुप्त कुंजी को उजागर करने से आपके लिए कई समस्याएं हो सकती हैं। हो सकता है कि आप हमेशा अपनी परियोजना को किसी हमले से पुनर्प्राप्त करने में सक्षम न हों, विशेष रूप से उत्पादन परिवेश में।

इन नकारात्मक दुष्प्रभावों को रोकने के लिए, हमेशा अपनी गुप्त कुंजी को पर्यावरण चर में संग्रहित करें और एक का उपयोग करें .gitignore फ़ाइल को अपने git रिपॉजिटरी से बाहर रखने के लिए।