Как скрыть SECRET_KEY? - PullRequest
       13

Как скрыть SECRET_KEY?

1 голос
/ 09 ноября 2019

Я поместил свой SECRET_KEY в secrets.json, а тот - в .gitignore;в settings.py я читаю ключ из файла.

Итог: мой локальный сервер читает ключ. Но когда я хочу произвести git push heroku master, выдается ошибка, файл не найден. Это понятно! Я добавил его в .gitignore. И соответственно вопрос: что делать? Зачем советовать скрывать SECRET_KEY в отдельном файле, скрытом от git, если тогда мы не можем просто отправить наши изменения на сервер?

Я вижу здесь выход: я могу явно зарегистрировать свой ключ в settings.py, вставьте его на сервер, снова спрячьте в файл, вставьте в репозиторий github.

Но насколько это безопасно? SECRETS_KEY скрыт только для публичных репозиториев?

Ответы [ 2 ]

3 голосов
/ 09 ноября 2019

Вы правильно обрабатываете секреты, не помещая эти секреты в хранилище в незашифрованном виде. Чтобы решить эту проблему, я обычно добавляю вторую проверку в settings.py

if os.path.exists('secrets.json'):
   # read secrets from json file
else:
    SECRET_KEY = os.environ['DJANGO_SECRET_KEY']

А в heroku вы устанавливаете переменную окружения с таким именем с значением, которое вы хотитеиспользуя config vars . Таким образом, ваши секреты доступны герою и местным жителям, но не хранятся в вашем хранилище.

0 голосов
/ 11 ноября 2019

секреты. Нас иногда ошибочно принимают за испорченный язык. Это все еще очень безопасно, это просто путаница в языке. Возможно, мастер git push heroku уже принят, и пока нет ни одного случая, чтобы он получал секретный ключ.

...