Создайте SECRET_KEY автоматически в SETTINGS.PY через .ENV
В моем исследовании я генерирую свой SECRET_KEY каждый раз, когда запускаю проект. Для этого я использую переменную в .env и функцию eval в settings.py. Выглядит это следующим образом, каждый файл:
.env
SECRET_KEY_VALUE_ENV = secrets.token_hex(100)
settings.py
import secrets
SECRET_KEY = eval(os.environ.get('SECRET_KEY_VALUE_ENV'))
Есть ли проблема в генерации SECRET_KEY таким способом?
Не используйте опасные функции типа eval()
на значении, которое вы не полностью контролируете.
Вам не нужно eval()
в любом случае.
Если другой программе или сценарию удастся установить значение SECRET_KEY_VALUE_ENV
в вашей среде, то на вашей машине будет Remote Code Execution.
Вычеркните eval()
и используйте это вместо него:
SECRET_KEY = os.environ.get('SECRET_KEY_VALUE_ENV')
Лучшим способом генерации SECRET_KEY
является просто:
from django.core.management.utils import get_random_secret_key
SECRET_KEY_VALUE_ENV = get_random_secret_key()