يعد الاحتفاظ بمفاتيحك الخاصة بعيدًا عن مستودعات الأكواد أمرًا حيويًا للأمان. تعرف على كيفية القيام بذلك وكيفية التعافي إذا كنت قد ارتكبت الخطأ بالفعل.

في Django ، يلعب المفتاح السري دورًا حيويًا في تعزيز أمان تطبيقك. يساعد في إدارة جلسات المستخدم ، ويحمي من هجمات التزوير عبر الموقع (CSRF) ، ويحمي بياناتك عن طريق إنشاء تواقيع مشفرة والتحقق منها من بين أشياء أخرى.

يجب أن تحافظ على أمان المفتاح السري لمشروعك في جميع الأوقات. سيؤدي كشفها إلى جعل تطبيقك عرضة للهجمات الضارة من قبل المتسللين ، مما يعرض أمنه للخطر. إذا تم اختراق مفتاحك السري ، فيجب أن تعرف كيفية إنشاء مفتاح جديد لتقليل التأثير السلبي على تطبيقك.

كيف يمكن الكشف عن مفتاح Django السري الخاص بك؟

يمكنك جعل مفتاح Django السري الخاص بك علنيًا عن طريق الخطأ إذا قمت بإلزامه عن غير قصد بـ git أو مستودع شفرة مصدر مشابه. هذا الخطأ شائع بين المبرمجين الجدد الذين ما زالوا التعرف على جيثب. عندما يحدث ذلك ، يمكنك القيام بأحد الإجراءات التالية:

  1. احذف الالتزام.
  2. استبدل المفتاح السري بالكامل.

قد لا يكون حذف الالتزام هو الخيار الأفضل لأنه لا يزال من الممكن الوصول إلى محفوظات الالتزام من خلال وسائل مختلفة ، مثل النسخ المخزنة مؤقتًا على GitHub أو الأنظمة الموزعة الأخرى. أسلم شيء يمكنك القيام به في مثل هذه الحالة هو افتراض أن مفتاحك السري قد تم اختراقه بالفعل.

instagram viewer

يجب عليك إنشاء مفتاح سري جديد لاستبدال المفتاح المخترق وحمايته باستخدام متغيرات البيئة. على أي حال ، يجب أن تتعلم كيفية إنشاء مفتاح سري جديد في Django لحماية تطبيقك من أشياء مثل هجمات التزوير عبر الموقع (CSRF).

كيفية إنشاء مفتاح سري جديد في Django

يوفر Django وظيفة تسمى get_random_secret_key () يساعدك على إنشاء مفتاح سري جديد متى اتصلت به. وظيفة get_random_secret_key () هي وظيفة مساعدة تستخدم الامتداد أسرار الوحدة النمطية في Python لإنشاء مفتاح سري آمن يتكون من 50 حرفًا.

لإنشاء مفتاح سري جديد باستخدام وظيفة get_random_secret_key () ، افتح ملف واجهة سطر الأوامر (CLI) واكتب هذا الأمر:

python management.py shell -c "من django.core.management.utils استيراد get_random_secret_key ؛ طباعة (get_random_secret_key ()) "

يستورد الأمر أعلاه الدالة get_random_secret_key () من django.core.management.utils ثم يقوم بطباعة مفتاح سري جديد مكون من 50 حرفًا ، والذي يمكنك استخدامه في مشروعك. قبل تشغيل الأمر أعلاه ، تأكد من أنك في الدليل الجذر لمشروعك ، أي نفس موقع ملف إدارة ملف في مشروعك.

يمكنك تشغيل نفس الأمر خارج CLI الخاص بك عن طريق إنشاء ملف Python ولصق مقتطف الشفرة هذا فيه:

# استيراد دالة get_random_secret_key ()
من django.core.management.utils يستورد get_random_secret_key

secret_key = get_random_secret_key ()
طباعة (مفتاح_سر)

يمكنك تشغيل الكود بكتابة هذا في CLI الخاص بك:

ملف pythonName.py

يجب أن يقوم الأمر أعلاه بطباعة مفتاح سري جديد مكون من 50 حرفًا يمكنك استخدامه في مشروعك.

كيف تحمي مفتاحك السري بمتغيرات البيئة

ربما لا ترغب في تغيير مفتاحك السري في كل مرة تقوم فيها بتنفيذ GitHub. طريقة فعالة للحفاظ على أمان مفتاحك السري هي تخزينه في متغير البيئة. متغيرات البيئة هي قيم يمكنك تعيينها خارج قاعدة التعليمات البرمجية الخاصة بك ، والتي لا يزال بإمكان برنامجك الوصول إليها أثناء وقت التشغيل. يمكنهم تخزين التكوين ومفاتيح API وبيانات اعتماد قاعدة البيانات وما إلى ذلك.

يمكنك تخزين متغيرات البيئة الخاصة بك في ملف يسمى .env واستبعادها من مستودع git الخاص بك. يمكنك القيام بذلك عن طريق إنشاء ملف يسمى .gitignore في مشروعك. يحتوي ملف .gitignore على قائمة بالملفات والمجلدات التي لن يتتبعها Git.

تختلف أنواع الملفات وهياكل الدليل من مشروع لآخر ، ولكن هناك إعدادات افتراضية معقولة يمكنك تطبيقها على كل لغة. يمكنك العثور على قائمة بقوالب gitignore بتنسيق مستودع GitHub's gitignore. توضح لك الخطوات التالية كيفية استخدام ملف .gitignore مع متغيرات البيئة في Django.

1. قم بإنشاء ملف .gitignore

في الدليل الأساسي - موقع ملف إدارة ملف — إنشاء ملف .gitignore ملف ونسخ محتويات هذا ملف جيثب بداخله. هذا الملف هو نموذج .gitignore لمشاريع Python التي تستبعد الملفات الشائعة التي لن تريدها في مستودعك.

بدلاً من ذلك ، يمكنك إضافة ملف .gitignore إلى مشروعك أثناء إنشاء مستودع على GitHub. للقيام بذلك ، انقر فوق أضف .gitignore الخيار ، ابحث عن Python ، وحدده.

2. قم بإنشاء ملف env

في الدليل الأساسي الخاص بك ، قم بإنشاء ملف يسمى .env. سيخزن هذا الملف جميع متغيرات البيئة الخاصة بك. انسخ مفتاحك السري والصقه في هذا الملف (أزل علامات الاقتباس والمسافات المحيطة به). هذا مثال:

SECRET_KEY = س#) _ v1dtrlqvc61 * 025t ^ u4 * -2h ^ kq & fmaw-ifgkppjxpyhh1٪

افتح ال .gitignore وتأكيد أن ملف .env اسم الملف فيه. إذا لم يكن كذلك ، فيمكنك إضافته بكتابة اسم الملف من تلقاء نفسه في سطر:

.env

3. قم بتثبيت حزمة python-dotenv

افتح CLI الخاص بك ، وقم بتثبيت ملف بيثون دوتنف الحزمة باعتبارها تبعية.

نقطة تثبيت python-dotenv

4. قم بتعديل ملف settings.py

في الخاص بك settings.py ملف ، قم باستيراد الحزم التالية:

يستورد نظام التشغيل
من دوتنف يستورد تحميل

بعد ذلك ، قم بتحميل متغيرات البيئة من ملف .env ملف في الخاص بك settings.py ملف عن طريق استدعاء load_dotenv () وظيفة:

load_dotenv ()

أخيرًا ، استبدل ملف SECRET_KEY متغير بهذا السطر من التعليمات البرمجية:

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

يمكنك تشغيل خادم التطوير الخاص بك للتأكد من أن التكوين أعلاه يعمل. إذا كان الأمر كذلك ، فيجب أن يعمل مشروعك بالشكل الذي تتوقعه. سيبدأ الأمر أدناه خادم التطوير الخاص بك.

بيثون MANAGER.py runserver

حافظ على أمان مفتاحك السري مع متغيرات البيئة

كشف مفتاحك السري يمكن أن يسبب لك العديد من المشاكل كمطور. قد لا تتمكن دائمًا من استعادة مشروعك من هجوم ، خاصة في بيئة الإنتاج.

لمنع هذه الآثار الجانبية السلبية ، احتفظ دائمًا بمفتاحك السري في متغير بيئة واستخدم ملف .gitignore ملف لإبقائه خارج مستودع git الخاص بك.