Django Academy · Урок

DEBUG, SECRET_KEY и ALLOWED_HOSTS

Правильно настраивайте опасные параметры

Урок 1 из 413 шагов

«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 — локальная установка не требуется.

Все уроки этого курса

  1. DEBUG, SECRET_KEY и ALLOWED_HOSTS
  2. HTTPS, HSTS и безопасные cookie
  3. Защита от XSS, CSRF и SQL-инъекций
  4. Проверка списка готовности к развёртыванию
← Назад к Django Academy