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