TL; доктор Жесткие кодирующие значения конфигурации и учетные данные удобны, но делает ваш код менее безопасным и менее портативным. Используйте переменные среды, чтобы сделать ваш код более безопасным и простым в развертывании в разных средах.
Плохой:
TWILIO_SECRET_KEY = "iamverysneaky" twilio_client = Twilio(key=TWILIO_SECRET_KEY)
Проблема: если кто-то получил доступ к вашему коду, теперь у них есть доступ к вашей учетной записи Twilio! Две проблемы по цене одного!
Хороший:
from dotenv import load_dotenv load_dotenv() twilio_client = Twilio(key=os.getenv("TWILIO_SECRET_KEY"))
Если кто-то получит доступ к вашему коду, по крайней мере, ваша учетная запись Twilio (и данные пользователя!) Все еще безопасна.
Чтобы проиллюстрировать, как это работает, мы переместим автогенерируемые Secret_key
Значение из settings.py
и в переменной среды.
Из этого:
SECRET_KEY="thisismyunsecuredsecretkey"
К этому:
SECRET_KEY=os.getenv("DJANGO_SECRET_KEY")
Делать эти вещи:
Загрузите пакет дотенва.
Создать файл с именем
.env.env.
в том же каталоге, что иsettings.py.
.Добавьте
.env
Файл к вашему.gitignore.
. Это самый важный шаг до нашей эры, он сохраняет.env.env.
, а также Таким образом, ваши секретные значения, вне контроля версий/Git.Добавьте значения конфигурации и учетные данные на .env.
Импорт и загрузка
Операционные системы
иДоценв
вsettings.py
Отказ Это делает значения доступными.Заменить оригинал
Secret_key
Значение с переменной средой.Выгода! Не вдаваясь, что ваши пользователи не получают подальше от того, чтобы их данные были украдены. ГДПР доброта!
Оригинал: “https://dev.to/jamestimmins/django-cheat-sheet-keep-credentials-secure-with-environment-variables-2ah5”