Приложение Django, развернутое на Heroku, работает, несмотря на неправильный SECRET_KEY

В моем проекте Django есть .env файл, в котором хранится моя DJANGO_SECRET_KEY переменная окружения:

export DJANGO_SECRET_KEY=dummysecretkey123

Я добавил ссылку на файл .env в свой файл .gitignore перед инициализацией репо, поэтому SECRET_KEY не должен быть виден в любом репо, отслеживаемом git

В моем settings.py я установил SECRET_KEY следующим образом:

SECRET_KEY = env.str("DJANGO_SECRET_KEY")

Для развертывания на Heroku я добавил SECRET_KEY через Config Vars в Heroku Dashboard - все работало как ожидалось.

Затем из любопытства я изменил SECRET_KEY в Heroku на неправильное значение, чтобы увидеть его эффект. К моему удивлению, приложение все еще было онлайн и работало. Я перезагрузил все дино, но ничего не изменилось. Затем я проверил переменные окружения сервера Heroku через heroku run python manage.py shell > import os > print(os.environ) и увидел, что для SECRET_KEY

было намеренно установлено неверное значение.

Что я здесь упускаю? Разве цель SECRET_KEY не в том, чтобы защитить мое приложение, то есть если он не установлен правильно, приложение не должно работать?

Назначение SECRET_KEY в django описано в официальной документации.

В нем говорится:

Секретный ключ используется для:

сеансов,

сообщений,

токенов PasswordResetView,

криптографическая подпись.

Вернуться на верх