Как сгенерировать новый секретный ключ в Django

Как сгенерировать новый секретный ключ в Django
Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

В Django секретный ключ играет жизненно важную роль в повышении безопасности вашего приложения. Он помогает управлять сеансами пользователей, защищает от атак с подделкой межсайтовых запросов (CSRF) и защищает ваши данные, среди прочего, создавая и проверяя криптографические подписи.





СДЕЛАТЬ ВИДЕО ДНЯ ПРОКРУТИТЕ, ЧТОБЫ ПРОДОЛЖИТЬ СОДЕРЖАНИЕ

Вы должны всегда держать секретный ключ вашего проекта в безопасности. Его раскрытие сделает ваше приложение уязвимым для злонамеренных атак хакеров, что поставит под угрозу его безопасность. Если ваш секретный ключ будет скомпрометирован, вы должны знать, как сгенерировать новый, чтобы уменьшить негативное влияние на ваше приложение.





Как ваш секретный ключ Django может быть раскрыт?

Вы можете случайно сделать свой секретный ключ Django общедоступным, если неосознанно зафиксируете его в git или аналогичном репозитории исходного кода. Эта ошибка распространена среди новых программистов, которые еще изучение GitHub . Когда это произойдет, вы можете сделать одно из следующих действий:





  1. Удалите фиксацию.
  2. Полностью заменить секретный ключ.

Удаление коммита может быть не лучшим вариантом, потому что история коммитов по-прежнему может быть доступна с помощью различных средств, таких как кэшированные копии на GitHub или других распределенных системах. Безопаснее всего в такой ситуации предположить, что ваш секретный ключ уже скомпрометирован.

Вы должны сгенерировать новый секретный ключ для замены скомпрометированного и защитить его с помощью переменных среды. В любом случае вам следует научиться генерировать новый секретный ключ в Django, чтобы защитить свое приложение от таких вещей, как Атаки с подделкой межсайтовых запросов (CSRF) .



разница между телевизором и монитором компьютера

Как сгенерировать новый секретный ключ в Django

Django предоставляет функцию, называемую get_random_secret_key() который помогает вам генерировать новый секретный ключ всякий раз, когда вы его вызываете. Функция get_random_secret_key() — это служебная функция, которая использует секреты модуль на Python для создания безопасного секретного ключа из 50 символов.

Чтобы сгенерировать новый секретный ключ с помощью функции get_random_secret_key(), откройте Интерфейс командной строки (CLI) и введите эту команду:





 python manage.py shell -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())" 

Приведенная выше команда импортирует функцию get_random_secret_key() из django.core.management.utils а затем распечатывает новый секретный ключ из 50 символов, который вы можете использовать в своем проекте. Перед запуском вышеуказанной команды убедитесь, что вы находитесь в корневом каталоге вашего проекта, т. е. в том же месте, что и управлять.py файл в вашем проекте.

Вы можете запустить ту же команду вне вашего CLI, создав файл Python и вставив в него этот фрагмент кода:





 # import the get_random_secret_key() function 
from django.core.management.utils import get_random_secret_key

secret_key = get_random_secret_key()
print(secret_key)

Вы можете запустить код, введя это в CLI:

 python fileName.py 

Приведенная выше команда должна распечатать новый секретный ключ из 50 символов, который вы можете использовать в своем проекте.

Как защитить свой секретный ключ с помощью переменных среды

Вы, вероятно, не хотите менять свой секретный ключ каждый раз, когда делаете коммит на GitHub. Эффективный способ сохранить секретный ключ в безопасности — сохранить его в переменной среды. Переменные среды — это значения, которые вы можете установить за пределами вашей кодовой базы, к которым ваша программа может получить доступ во время выполнения. Они могут хранить конфигурацию, ключи API, учетные данные базы данных и т. д.

Вы можете сохранить переменные среды в файле с именем .env и исключить их из своего репозитория git. Вы можете сделать это, создав файл с именем .gitignore в вашем проекте. Файл .gitignore содержит список файлов и папок, которые Git не будет отслеживать.

Типы файлов и структуры каталогов варьируются от проекта к проекту, но есть разумные значения по умолчанию, которые вы можете применить для каждого языка. Вы можете найти список шаблонов .gitignore в Репозиторий GitHub gitignore . Следующие шаги показывают, как использовать файл .gitignore с переменными среды в Django.

1. Создайте файл .gitignore

В вашем базовом каталоге — расположение вашего управлять.py файл — создать .gitignore файл и скопируйте содержимое этого Файл GitHub внутрь. Этот файл является образцом .gitignore для проектов Python, который исключает общие файлы, которые вам не нужны в вашем репозитории.

удалить DRM из Adobe Digital Editions

Кроме того, вы можете добавить файл .gitignore в свой проект при создании репозитория на GitHub. Для этого нажмите на кнопку Добавить .gitignore вариант, найдите Python и выберите его.

  добавление шаблона python .gitignore на github

2. Создайте файл .env

В базовом каталоге создайте файл с именем .env . В этом файле будут храниться все ваши переменные среды. Скопируйте и вставьте свой секретный ключ в этот файл (удалите кавычки и пробелы вокруг него). Вот пример:

 SECRET_KEY=x#)_v1dtrlqvc61*025t^u4*-2h^kq&fmaw-ifgkppjxpyhh1% 

Открой .gitignore файл и убедитесь, что .env имя файла находится в нем. Если это не так, вы можете добавить его, написав имя файла отдельно в строке:

как получить бесплатные компьютерные запчасти
 .env 

3. Установите пакет python-dotenv

Откройте CLI и установите python-dotenv пакет как зависимость.

 pip install python-dotenv 

  установка пакета python-dotenv

4. Измените файл settings.py

В вашей settings.py файл, импортируйте следующие пакеты:

 import os 
from dotenv import load_dotenv

Затем загрузите переменные среды из вашего .env файл в свой settings.py файл, позвонив в load_dotenv() функция:

 load_dotenv() 

Наконец, замените свой СЕКРЕТНЫЙ КЛЮЧ переменная с этой строкой кода:

 SECRET_KEY = os.environ.get('SECRET_KEY') 

Вы можете запустить свой сервер разработки, чтобы убедиться, что указанная выше конфигурация работает. Если это так, ваш проект должен работать так, как вы ожидаете. Команда ниже запустит ваш сервер разработки.

ФД1С73742Ф93ФЕ4А29Ф8973531Е24Ф9СЕА3812Б3

Держите секретный ключ в безопасности с помощью переменных среды

Раскрытие вашего секретного ключа может вызвать много проблем у вас как у разработчика. Вы не всегда сможете восстановить свой проект после атаки, особенно в производственной среде.

Чтобы предотвратить эти негативные побочные эффекты, всегда храните свой секретный ключ в переменной среды и используйте .gitignore файл, чтобы держать его подальше от вашего репозитория git.