Рубрики
Без рубрики

Держите свои секреты в безопасности с Python-Dotenv

Давайте посмотрим на простой модуль сегодня – модуль Python-Dotenv. Много времени на сайте, вы можете задаться вопросом о том, как безопасность этого сайта

Автор оригинала: Pankaj Kumar.

Держите свои секреты в безопасности с Python-Dotenv

Давайте посмотрим на легкий модуль сегодня – Модуль Python-Dotenv Отказ Много времени на сайте, вы можете задаться вопросом о том, как безопасность этого веб-сайта может угрожать, поскольку некоторые аспекты кода обязаны принять информацию с конечной точки или определенного домена.

Хорошим примером этого будет использование Secret_Keys в Github или использование их в проектах Django.

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

Это может привести к многим вопросам со вредоносными людьми, пытающимися приступовку DDOS или получить жизненно важное значение с вашего сайта или приложения.

Итак, вы можете спросить, каково это решение для этого и как я могу сохранить свои полномочия?

Что ж, к счастью, у нас есть модуль Python-Dotenv, который может помочь нам работать с секретами и ключами, не подвергая их внешнему миру, и сохраняйте их в безопасности во время развития!

1.0 Как работает Python-Dotenv?

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

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

1.1 Как называется этот файл?

Файл называется .env Расширение в большинстве мест и называется такими даже в этой статье.

1.2 Доступ к этому файлу в коде?

Мы будем использовать удобный модуль, называемый Python-Dotenv модуль для того, чтобы использовать эти Secret_keys , в коде.

Python-Dotenv Модуль настроен в settings.py Файл в проекте и выполняется таким образом, чтобы мы могли получить доступ к Ключи довольно дискретно.

Это довольно простая идея, и вы узнаете, что я подразумеваю в то время, когда мы закончили, так что будем работать с этим!

Установка Python-Dotenv

Установка Python-Dotenv Модуль довольно прост и может быть достигнут через простую команду, для Менеджер PIP ,

pip install -U python-dotenv

Использование модуля Python-Dotenv

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

2.1 Настройка .env

Прежде чем идти вперед с попыткой использования учетных данных в ваших файлах проекта, важно отметить, что вам сначала нужно иметь данные, записанные в вашем .env файл, чтобы иметь возможность их использовать.

Итак, давайте создадим .env Файл и введите некоторые учетные данные в него, которые мы будем использовать в проекте.

# .env file
SECRET_KEY=v%)9n7kg^65(4-uir6!pa@oqqsdn8agv9h8_#ohn*55$th-gff
DOMAIN=tester.org
EMAIL=admin@${DOMAIN}

Мы вставили наши случайно сгенерированные Secret_key , Домен и Email , в .env Файл, и это достаточно о достаточном.

2.2 Работа с settings.py в проанализирующие данные

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

В Django Framework , settings.py Файл используется для записи информации о компонентах используемых компонентов проекта, а также спецификации, которые имеют решающее значение для соединения проекта вместе.

Там аналогичные рассуждения за созданием settings.py в рамках колба тоже.

Как таковой, мы собираемся создать наших собственных settings.py что может помочь нам использовать Python-Dotenv Модуль для работы с Секреты В наших проектах в качестве примера.

# settings.py
## importing the load_dotenv from the python-dotenv module
from dotenv import load_dotenv

## using existing module to specify location of the .env file
from pathlib import Path
import os

load_dotenv()
env_path = Path('.')/'.env'
load_dotenv(dotenv_path=env_path)

# retrieving keys and adding them to the project
# from the .env file through their key names
SECRET_KEY = os.getenv("SECRET_KEY")
DOMAIN = os.getenv("DOMAIN")
EMAIL = os.getenv("EMAIL")

Если вы хотите следить или редактировать существующие settings.py Не стесняйтесь делать это, так как процедура довольно проста и не представляет риска.

    И м п о р т м о д у л я P y t h o n – D o t e n v

В этом коде мы импортируем Python-Dotenv для load_dotenv Функциональность, которые устанавливают переменные клавиши среды для нас для работы. Это означает, что все Секреты В .env Файл, теперь можно получить доступ как переменные среды для этого проекта.

Мы импортируем Путь Функция из pathlib Модуль для доступа к .env Файл и ОС Модуль для работы с клавишами переменной среды, созданные из-за Python-Dotenv модуль.

    П е р е м е н н а я e n v _ p a t h

Мы используем Env_Path в качестве средства для указания каталога, в котором .env файл хранится.

В этом примере файл хранится в том же каталоге, что и settings.py и поэтому текущий каталог указывается.

    Ф у н к ц и я O S . G E T E N V

Это функция, которая используется для извлечения клавиш переменной среды, если они существуют.

Мы используем эту функцию для извлечения клавиш, которые нам нужны от .env файл.

2.3 Предложения для распределенного развития приложений

Во время этапа разработки это хорошая идея, чтобы ваша команда была проинформирована о необходимых учетных данных и предоставлять им свои копии .env файл. Таким образом, они могут работать над проектом, тестом и отладкой без каких-либо проблем.

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

Кроме того, это, как правило, хорошая идея генерировать новый ключ перед развертыванием в качестве меры безопасности!

Заключение

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

Их можно применять для работы с большим количеством веб-приложений или только для Django и Flask.

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

Вот до более безопасной системы, ура!

использованная литература