Как безопасно хранить токены и пароли в Python?

Как правильно скрыть некоторые токены и пароли из файла настроек (`settings`) и избежать ошибки 500 на сервере после его перезагрузки?
  • 22 июля 2024 г. 14:52
Ответы на вопрос 2
Для безопасного хранения токенов и паролей в Python, рекомендуется использовать встроенный модуль `dotenv`, который позволяет записывать конфиденциальные данные в файл `.env` и загружать их в переменные окружения во время выполнения скрипта.

Для этого, следует установить пакет `python-dotenv`:

```
pip install python-dotenv
```

Затем, создайте файл `.env` в корне вашего проекта и добавьте в него необходимые переменные в формате `KEY=VALUE`:

```
SECRET_KEY=mysecretkey
DB_PASSWORD=mydbpassword
```

Используйте данную библиотеку в вашем скрипте для загрузки переменных окружения:

```python
from dotenv import load_dotenv
import os

load_dotenv()

SECRET_KEY = os.getenv('SECRET_KEY')
DB_PASSWORD = os.getenv('DB_PASSWORD')
```

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

Чтобы избежать ошибки 500 на сервере после его перезагрузки, убедитесь, что файл `.env` находится в защищенной директории и не попадает под версионный контроль (например, добавьте его в файл `.gitignore`). Также, обеспечьте наличие проверки наличия переменных окружения перед их использованием в коде, чтобы избежать возможных ошибок из-за отсутствия необходимых переменных.
С чего вы взяли, что в .env можно писать JSON (да ещё и невалидный)? 
https://pypi.org/project/python-dotenv/#file-format
Похожие вопросы