فعال کردن Security Headers در Django

برای فعال کردن و تنظیم Security Headers در یک برنامه Django، می‌توانید از تنظیمات middleware و settings استفاده کنید. در زیر چند Security Header کلیدی و روش اضا

انتشار: , زمان مطالعه: 2 دقیقه
فعال کردن و تنظیم Security Headers در Django
دسته بندی: برنامه نویسی تعداد بازدید: 260

فعال کردن و تنظیم Security Headers در Django

برای فعال کردن و تنظیم Security Headers در یک برنامه Django، می‌توانید از تنظیمات middleware و settings استفاده کنید. در زیر چند Security Header کلیدی و روش اضافه کردن آنها به پروژه Django خود آورده شده است:

  1. HTTP Strict Transport Security (HSTS):

    • این سربرگ مرورگر را مجاب می‌کند تا تنها از ارتباطات HTTPS استفاده کند.
    • در تنظیمات settings.py خود، مقدار SECURE_HSTS_SECONDS را تنظیم کنید. مثلاً برای تنظیم آن به 1 سال:
SECURE_HSTS_SECONDS = 31536000

اگر می‌خواهید این تنظیمات به زیر دامنه‌ها نیز اعمال شود، این خط را نیز اضافه کنید:

SECURE_HSTS_INCLUDE_SUBDOMAINS = True

X-Content-Type-Options:

  • این سربرگ جلوگیری می‌کند که مرورگرها تیپ محتوایی فایل‌ها را تشخیص داده و تغییر دهند.
  • به تنظیمات settings.py خود، این خط را اضافه کنید:
SECURE_CONTENT_TYPE_NOSNIFF = True

X-XSS-Protection:

  • این سربرگ به مرورگرها می‌گوید که چطوری با محتواهای مشکوک به حمله XSS برخورد کنند.
  • به تنظیمات settings.py خود، این خط را اضافه کنید:
SECURE_BROWSER_XSS_FILTER = True

X-Frame-Options:

  • این سربرگ کنترل می‌کند که صفحه شما می‌تواند در یک iframe توسط سایت‌های دیگر نمایش داده شود یا خیر.
  • به تنظیمات settings.py خود، این خط را اضافه کنید:
X_FRAME_OPTIONS = 'DENY'

Content Security Policy (CSP):

  • Django به طور مستقیم پشتیبانی نمی‌کند، اما می‌توانید از پکیج django-csp استفاده کنید.
  • نصب django-csp با دستور:
pip install django-csp

سپس به MIDDLEWARE در settings.py خود این خط را اضافه کنید:

'csp.middleware.CSPMiddleware',

و در نهایت، تنظیمات CSP را به settings.py اضافه کنید، مثلاً:

CSP_DEFAULT_SRC = ("'self'",)

افزودن Middleware:

  • به مطمئن شوید که SecurityMiddleware در تنظیمات MIDDLEWARE خود در settings.py فعال است:
MIDDLEWARE = [
  # ...
  'django.middleware.security.SecurityMiddleware',
  # ...
]

🐍با اعمال این تنظیمات، Security Headers شما در پروژه Django فعال می‌شوند. برخی از این تنظیمات ممکن است با کد یا محتوای شما تعارض داشته باشند، بنابراین پس از اعمال هر تغییر، برنامه خود را بررسی کنید و اطمینان حاصل کنید که همچنان به درستی کار می‌کند.


دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)