DEBUG, SECRET_KEY и ALLOWED_HOSTS
Правильно настраивайте опасные параметры
«DEBUG, SECRET_KEY и ALLOWED_HOSTS» — бесплатный урок Django Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Django Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Django Academy содержит 4 уроков всего.
Три опасные настройки
Три настройки в settings.py могут вывести рабочий сайт из строя, если задать их неправильно. Давайте вместе разберёмся с DEBUG, SECRET_KEY и ALLOWED_HOSTS. 🔒
Что делает DEBUG
Когда DEBUG имеет значение True, Django показывает подробные страницы ошибок с вашим кодом, настройками и трассировкой стека. При разработке это очень полезно, но в рабочей среде становится подарком для злоумышленников.
DEBUG = TrueОтключение DEBUG в рабочей среде
В рабочей среде установите для DEBUG значение False, чтобы пользователи видели обычную страницу 500, а не внутренние сведения приложения. Никогда не размещайте рабочий сайт с включённым DEBUG.
DEBUG = FalseЗнакомство с SECRET_KEY
SECRET_KEY — это начальное значение, которое Django использует для подписи сеансов, CSRF-токенов и сброса паролей. Если ключ станет известен, злоумышленник сможет подделать любой из них.
SECRET_KEY = "django-insecure-..."Храните SECRET_KEY в секрете
Никогда не добавляйте настоящий SECRET_KEY в git. Загружайте его из переменной окружения, чтобы значение хранилось за пределами кода.
import os
SECRET_KEY = os.environ["DJANGO_SECRET_KEY"]Генерация надёжного ключа
Нужен новый SECRET_KEY? Django предоставляет вспомогательную функцию, которая возвращает длинную случайную строку, которую трудно угадать, чтобы вы могли безопасно её сохранить.
from django.core.management.utils import get_random_secret_key
get_random_secret_key()Зачем нужен ALLOWED_HOSTS
ALLOWED_HOSTS содержит список доменов, которые разрешено обслуживать вашему сайту. Он блокирует атаки через заголовок HTTP Host, пытающиеся обманом подсунуть приложению поддельное имя хоста.
Указание настоящих доменов
Заполните ALLOWED_HOSTS точными доменами, на которые отвечает ваш сайт. При отключённом DEBUG любой запрос к хосту, которого нет в списке, получит ошибку 400.
ALLOWED_HOSTS = ["example.com", "www.example.com"]Избегайте ловушки подстановочного знака
Если установить для ALLOWED_HOSTS подстановочный знак, приложение примет любой заголовок Host, и защита перестанет работать. Используйте это только для быстрых локальных проверок, но никогда — в рабочей среде.
ALLOWED_HOSTS = ["*"]Управление всем через окружение
Правильный подход — единый источник истины: считывайте DEBUG, SECRET_KEY и список хостов из переменных окружения, чтобы один и тот же код безопасно работал везде.
DEBUG = os.environ.get("DEBUG", "0") == "1"Позвольте Django предупредить вас
Django может проверить эти настройки за вас. Команда check --deploy обнаружит небезопасный DEBUG, слабый ключ или открытый список хостов до публикации приложения.
python manage.py check --deployБыстрая проверка
Пора проверить, насколько хорошо вы разобрались с настройками рабочей среды.
Итоги: безопасная тройка
Вы защитили основные настройки: отключили DEBUG, убрали секретный ключ из git и ограничили ALLOWED_HOSTS своими доменами. Запустите check --deploy — и безопасное начало готово. 🎉
Изучай Python с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 30
- Уроки
- 120
Часто задаваемые вопросы
Урок «DEBUG, SECRET_KEY и ALLOWED_HOSTS» бесплатный?
Да — полный текст урока «DEBUG, SECRET_KEY и ALLOWED_HOSTS» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Django Academy, подпишись на CoddyKit PRO. Курс Django Academy содержит 4 уроков всего.
Чему я научусь в уроке «DEBUG, SECRET_KEY и ALLOWED_HOSTS»?
Правильно настраивайте опасные параметры Ты практикуешь Django Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Django Academy?
Предыдущий опыт не требуется. Django Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «DEBUG, SECRET_KEY и ALLOWED_HOSTS»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Django Academy?
Да. Каждый урок Django Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- DEBUG, SECRET_KEY и ALLOWED_HOSTS
- HTTPS, HSTS и безопасные cookie
- Защита от XSS, CSRF и SQL-инъекций
- Проверка списка готовности к развёртыванию