Subjects

All subjects Django Java Python React Spring Boot JavaScript PHP
Sign Up Free
Question 7 of 10 · Django Deployment & DevOps
Interview question

What Django settings must be changed for production (DEBUG, ALLOWED_HOSTS, SECRET_KEY, security headers)? प्रोडक्शन के लिए कौन-सी Django सेटिंग्स बदलनी ज़रूरी हैं (DEBUG, ALLOWED_HOSTS, SECRET_KEY, सुरक्षा हेडर्स)?

Answer

DEBUG must be set to False in production; leaving it True exposes detailed stack traces, local variable values, and settings to any visitor who triggers an error, a serious information disclosure vulnerability. ALLOWED_HOSTS must list the actual production domain(s) — Django rejects requests with a mismatched Host header when set correctly, protecting against HTTP Host header attacks.

SECRET_KEY (used for signing sessions, CSRF tokens, and password reset links) must be a unique, unpredictable value pulled from an environment variable, never the default or a value committed to source control. Additional production hardening includes SECURE_SSL_REDIRECT to force HTTPS, SESSION_COOKIE_SECURE and CSRF_COOKIE_SECURE to prevent cookies from being sent over plain HTTP, and SECURE_HSTS_SECONDS to enforce HTTPS via browser policy.

DEBUG = False
ALLOWED_HOSTS = ['example.com', 'www.example.com']
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SECURE_HSTS_SECONDS = 31536000

प्रोडक्शन में DEBUG को False पर सेट करना ज़रूरी है; इसे True छोड़ने से किसी भी विज़िटर को विस्तृत स्टैक ट्रेस दिखाई देती हैं। ALLOWED_HOSTS में वास्तविक प्रोडक्शन डोमेन(s) सूचीबद्ध होने चाहिए।

SECRET_KEY एक अद्वितीय, अप्रत्याशित वैल्यू होनी चाहिए। अतिरिक्त प्रोडक्शन सख्तीकरण में SECURE_SSL_REDIRECT, SESSION_COOKIE_SECURE और SECURE_HSTS_SECONDS शामिल हैं।

DEBUG = False
ALLOWED_HOSTS = ['example.com', 'www.example.com']
SECURE_SSL_REDIRECT = True

Was this answer clear?