📝 Django

SECRET_KEY в Django

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

SECRET_KEY участвует в криптографической подписи данных Django, поэтому его нельзя хранить в репозитории или показывать в логах.

Что такое 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)

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

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

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

🔗 Похожие

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

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

📝

Поиск в Django

Поиск в Django можно начать с простых ORM-фильтров, а для ранжирования и полнотекстового поиска использовать...

📅 30.06.2026 👁️ 279
📝

Swagger документация с drf-spectacular

drf-spectacular генерирует OpenAPI 3.0 схему и Swagger UI для DRF.

📅 30.06.2026 👁️ 563
📝

settings.py: настройки Django

settings.py — центральный конфигурационный файл Django-проекта.

📅 30.06.2026 👁️ 315
🎓 Продолжить обучение

В каких курсах используется этот материал

Перейдите к курсу, чтобы закрепить материал на практике.

Django RequestLab: от HTTP до безопасного продакшена Открыть программу курса