الإعدادات الأساسية التي يجب تغييرها لتطبيق Django في مرحلة الإنتاج

لقد انتهيت من تطبيق Django، بعد أشهر من التطوير، وأصبح جاهزًا لبدء التشغيل. حتى الآن، كنت تقوم بتشغيل التطبيق في وضع التطوير. هناك بعض الإعدادات التي قد تحتاج إلى تغييرها قبل أن تتمكن من بدء البث المباشر بأمان.

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

ملف إعدادات Django – شرح خطوة بخطوة

وضع التصحيح

ربما هو الإعداد الأكثر أهمية الذي ستحتاج إلى إيقاف تشغيله قبل البدء في الإنتاج.

القيمة الافتراضية عند إنشاء مشروع Django هي DEBUG = true في settings.py مصحوبة بتحذير لإيقاف تشغيله في الإنتاج. هذا الإعداد مسؤول عن طباعة رسائل الخطأ بشكل جميل عند حدوث خطأ ما. وعلى الرغم من أن هذا مفيد للغاية أثناء تطوير التطبيق لأنه يعرض تتبع المكدس جنبًا إلى جنب مع بيانات تصحيح الأخطاء الأخرى، إلا أنه من الخطير للغاية أن يتم عرض المعلومات في الإنتاج.

عادةً ما أقوم بتعيين متغير بيئة يخزن البيئة الحالية. بوجود هذه المعلومات، أقوم بتمكين تصحيح الأخطاء فقط في البيئات غير المنتجة.

is_prod = os.environ.get("ENVIRONMENT", default="local") == "prod"
DEBUG = not is_prod

المفتاح السري

هذا المتغير SECRET_KEY هو مفتاح تشفير يستخدم في تشفير جلسات المستخدم. وهذا ليس له علاقة بكيفية تخزين كلمات المرور في قاعدة البيانات، ولكنه حساس للغاية ويجب تخزينه سرًا. إذا تم اختراق ذلك، فلا ينبغي اعتبار جلسات المستخدم و ملفات تعريف الارتباط آمنة ويجب عليك تغيير السر على الفور.

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

يوفر Django دالة يمكنك استخدامها لإنشاء مفتاح سري جديد. ما عليك سوى تشغيل الأمر التالي في بيئة Python الافتراضية، وتخزين النتيجة في متغير بيئة:

python3 -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'

ثم، في settings.py، استخدم الكود التالي لتعيين المفتاح السري في بيئة الإنتاج. القيمة الافتراضية هي القيمة التي سيتم استخدامها في بيئة التطوير/البيئة المحلية.

SECRET_KEY = os.environ.get("SECRET_KEY", default="django-insecure-XY") 

المضيفين المسموح بهم

وأخيرًا، هناك قائمة بالمضيفين المسموح لهم بتشغيل التطبيق. من الممارسات الشائعة تعيين حرف بدل يسمح للجميع (“*”) عند بدء التطوير، ولكن يجب أن يتغير هذا قبل الدخول في الإنتاج. تأكد من تعيين النطاقات الدقيقة التي تخطط لتشغيل تطبيقك فيها حيث يمكن استخدامها لحمايتك من بعض هجمات CSRF.

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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

اكتشاف المزيد من بايثون العربي

اشترك الآن للاستمرار في القراءة والحصول على حق الوصول إلى الأرشيف الكامل.

Continue reading

Scroll to Top