Как скрыть секретный ключ с помощью virtualenv и Django?
Я использую Джанго, python, виртуальное окружение, virtualenvwrapper и залетный.
до сих пор я просто оставил свой secret_key
внутри .
Это работает файл для локальных файлов. Однако я уже разместил свои файлы в Git. Я знаю, что это неприемлемо для производства(Apache).
каков правильный способ скрыть мой secret_key
?
должен ли я использовать virtualenv
чтобы скрыть это?
3 ответов
есть много различных методов, чтобы скрыть секреты.
-
используйте другой, не версионный файл.
создать новый файл
secrets.py
или что у вас есть и положить ваши секреты в этом. Поместите его рядом с файлом настроек и поместите туда все секретно; затем в файл настроек поместитеfrom secrets import *
в верхней части. Затем, как сказал Рахул, добавьте
вы можете создать файл с именем secret_settings.py
и место вашей SECRET_KEY
внутри этого файла. Затем добавьте этот файл в .gitignore
.
Затем в настройках вы можете удалить переменную секретного ключа и импортировать ее оттуда. Это должно гарантировать, что SECRET_KEY
переменной остается вне контроля версий.
создайте файл с именем secret_settings
а затем поместите свой SECRET_KEY
и другие секретные настройки в нем.
SECRET_KEY = .. # add your setting here
затем в settings.py
file, импортируйте эти настройки.
from secret_settings import *
наконец, добавьте secret_settings.py
на .
Примечание:
если вы уже зафиксировали некоторые конфиденциальные данные в своем РЕПО, измените его!
по состоянию на Github на сайте удаление конфиденциальных данных статьи:
если вы совершили пароль, изменить его! Если вы совершили ключ, создайте новый.
Регистрация это ссылке о том, как очистить файл от истории вашего репозитория.
общий подход, если вы хотите настроить регион, но не хотите хранить конфиденциальную информацию в РЕПО, - это передать ее через переменные среды. Когда вам это нужно, просто позвоните os.environ('SECRET')
(даже в свой settings.py
). Лучше с некоторой резервной стоимостью.
Virtualenv не помогает вам скрыть что-либо, это просто мешает вам общесистемной установке Python от засорения одним проектом необходимых пакетов.