Создайте 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()
Вернуться на верх