📝 Django

SECRET_KEY в Django

P
Автор
Pyland
📅
Опубликовано
30.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
80
🌿
Уровень
Средний
🐦 💼 ✈️

Выдаст понятную ошибку если переменная не задана.

Что такое SECRET_KEY

SECRET_KEY — случайная строка, используемая Django для:
- Подписи сессий и cookies
- Защиты CSRF-токенов
- Генерации ссылок для сброса пароля
- django.contrib.messages

Генерация нового ключа

from django.core.management.utils import get_random_secret_key
print(get_random_secret_key())

Или через командную строку:

python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"

Правила безопасности

  1. Никогда не коммитить в git — историю git не изотрёшь
  2. Длина минимум 50 символов
  3. Уникальный для каждого окружения (dev ≠ prod)
  4. Ротировать при компрометации

Хранение в переменной окружения

# settings.py
import os
SECRET_KEY = os.environ.get('SECRET_KEY')
if not SECRET_KEY:
    raise ValueError("SECRET_KEY environment variable is not set!")

.env:

SECRET_KEY=django-prod-abcdef1234567890...

.gitignore

.env
*.env
.env.local
.env.production

Если ключ утёк

  1. Немедленно сгенерируй новый ключ
  2. Установи его в продакшн
  3. Все текущие сессии будут аннулированы (пользователи выйдут)
  4. CSRF-токены станут недействительны

django-environ для валидации

import environ
env = environ.Env(SECRET_KEY=(str, None))
SECRET_KEY = env('SECRET_KEY')

Выдаст понятную ошибку если переменная не задана.

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

pytest-django: тестирование Django

Охватываемые темы: Установка, @pytest.mark.djangodb, Фикстуры, Тестирование views.

📅 30.06.2026 👁️ 138
📝

Django: Теги шаблонов

Теги шаблонов — это логика внутри HTML. В отличие от {{ переменная }}, которая только...

📅 30.06.2026 👁️ 90
📝

Django: Статические файлы

Статические файлы — CSS, JavaScript, изображения, шрифты. Django обрабатывает их особым образом: в разработке раздаёт...

📅 30.06.2026 👁️ 79

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!