مدیریت کلیدهای حساس در Django
- 1403/09/17
مدیریت کلیدهای حساس در Django
در پروژههای نرمافزاری، بهخصوص در وباپلیکیشنهایی که با Django توسعه داده میشوند، مدیریت متغیرهای حساس مانند SECRET_KEY، اطلاعات دیتابیس، و کلیدهای API یکی از مهمترین چالشهاست. ذخیره این اطلاعات بهطور مستقیم در فایل settings.py میتواند مشکلات امنیتی جدی به همراه داشته باشد، مخصوصاً اگر کد منبع در مخازن عمومی مانند GitHub قرار گیرد.
.env
چیست و چرا اهمیت دارد؟فایل .env
یک فایل متنی ساده است که میتوانید مقادیر متغیرهای محیطی خود را در آن ذخیره کنید. این فایل به شما کمک میکند تا:
.env
استفاده کنیم؟python-dotenv
برای خواندن متغیرهای محیطی از فایل .env
، ابتدا کتابخانه python-dotenv
را نصب کنید:
pip install python-dotenv
2. ایجاد فایل .env
در ریشه پروژه
یک فایل به نام .env
در پوشه اصلی پروژه (همان جایی که manage.py
قرار دارد) ایجاد کرده و متغیرهای حساس را در آن تعریف کنید:
SECRET_KEY=your-very-secret-key
DATABASE_NAME=my_database
DATABASE_USER=my_user
DATABASE_PASSWORD=my_password
.env
در settings.py
در فایل settings.py، کتابخانه dotenv
را وارد کرده و مقادیر را بارگذاری کنید:
import os
from dotenv import load_dotenv
# بارگذاری مقادیر فایل .env
load_dotenv()
# استفاده از متغیرهای محیطی
SECRET_KEY = os.getenv('SECRET_KEY')
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': os.getenv('DATABASE_NAME'),
'USER': os.getenv('DATABASE_USER'),
'PASSWORD': os.getenv('DATABASE_PASSWORD'),
'HOST': os.getenv('DATABASE_HOST', 'localhost'),
'PORT': os.getenv('DATABASE_PORT', '5432'),
}
}
.env
اطمینان حاصل کنید که فایل .env
در مخزن گیت منتشر نمیشود. برای این کار، فایل .gitignore
خود را بهروزرسانی کنید:
.env
در Django.env
جداگانه داشته باشید.رایگان ثبت نام کنید و اولین نفری باشید که از پست های جدید مطلع می شوید.