Как избежать сохранения имени пользователя и пароля как части строки подключения - PullRequest
0 голосов
/ 25 октября 2018

Ситуация

Моя команда работает с NFS.Я написал скрипт на Python, который подключается к базе данных.Люди исполняют мой скрипт на python и, основываясь на некоторых значениях, связанных с их ИД пользователя, в нашей базе данных внутреннего сервера mongodb, скрипт выполняет для них определенные действия

Мой вопрос

У меня есть строка подключения к mongodb, например

database_client = MongoClient("mongodb://<myusername>:<mypassword>@serverip:port/DBName")

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

Что не является опцией

Создание скрипта Python и непрозрачного исполняемого файла не допускается.Не говоря уже о том, что это не защищает мои учетные данные от утечки другим членам трамвая, которые работают на той же базе кода.Также не делает мир БД редактируемым / читабельным.Все запросы на редактирование БД должны проходить через авторизованную учетную запись и только через API, предоставленный сценарием.

Есть ли способ сделать это / что я должен делать вместо этого?

Редактировать : Я НЕ использую Heroku.Я нахожусь за брандмауэром компании, а сервер mongoDB - это машина с IP-адресом в сети компании

1 Ответ

0 голосов
/ 26 октября 2018

Одна из идей - прочитать имя пользователя и пароль из файла конфигурации 1 , например

[topsecret]
user = foo
password = bar

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

1 Вы можете использовать модуль configparser https://docs.python.org/3.4/library/configparser.html для анализа файлов конфигурации, таких как указано выше.

...