Приложение 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,
криптографическая подпись.