ویرگول
ورودثبت نام
علی یوسفیان
علی یوسفیان
خواندن ۲ دقیقه·۳ سال پیش

تنظیمات امنیتی برای deploy کردن Django

در این مقاله قصد دارم چک لیست امنیتی اولیه که برای deploy کردن یک پروژه جنگو نیاز است را معرفی کنم


در مرحله اول با اجرای دستور زیر خود جنگو پروژه شما را بررسی میکند . اگر نکته یا پیشنهادی برای شما داشت به شما معرفی میکند از جمله صفحاتی که به حملات XSS یا Anti forgery-token آسیب‌پذیر هستند رامعرفی میکند

python manage.py check --deploy

در بخش تنظیمات خود جنگو یعنی فایل setting.py نکات زیر را اعمال کنید

در مرحله اول نیاز است تا کلید رمزنگار جنگو و پروژه خود را به environment سرور لینوکسی خود منتقل کنید در این مرحله کلید را که در تنظیمات شما با نام SECRET_KEY است با با دستور زیر به سرور خود منتقل کنید

export SECRET_KEY=<SECRET_KEY>

و جایگزین این کلید کد زیر را قرار دهید

import os SECRET_KEY = os.environ['SECRET_KEY']

خب تا این مرحله ۲ قسمت را گفتیم سخت که نبود مرحله بعدی ما این است که Debug را False کنیم تا خطاهای اصلی سیستم را به کاربر با اطلاعات بسیاری که در خود را را نبیند.

DEBUG = True

در تنظیمات پایگاه داده‌ایی رمز پایگاه خود را به صورت text نگه ندارید و می‌توانید مانند SECRET_KEY درهمان environment نگهداری کنید.

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'educa', 'USER': 'educa', 'PASSWORD': '*****', } }

در تنظیمات خود این قسمت را قرار دهید تا تمامی خطا های رخ داده برای مدیر سیستم در حال Debug =False ارسال گردد

ADMINS = ( ('Antonio M', 'email@mydomain.com'), )

سرور خود را بر روی HTTPS تنظیم کنید و فلگ‌های زیر را اعمال کنید:

CSRF_COOKIE_SECURE=True SESSION_COOKIE_SECURE=True

لاگ گیری را فعال کنید

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'filters': {
'special': {
'()': 'project.logging.SpecialFilter',
'foo': 'bar',
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'handlers': {
'file_error': {
'level': 'ERROR',
'class': 'logging.FileHandler',
'filename':
},

این قسمت کوچکی از تنظیمات امنیتی بود سعی میکنم در آینده این مقاله را تکمیل کنم.

https://www.packtpub.com/product/django-3-by-example-third-edition/9781838981952

https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/#logging

djangosecuritysettingpython
همیشه برنامه‌نویس ولی یه برنامه‌نویس متن باز عاشق پایتون جنگو و تحلیل داده
شاید از این پست‌ها خوشتان بیاید