Удаленное подключение к базе данных MongoDB без сохранения пароля в открытом тексте - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь удаленно подключиться к базе данных MongoDB, но не хочу хранить пароль для базы данных в виде открытого текста в коде.Какой хороший метод для шифрования / дешифрования пароля, чтобы он не был доступен никому с исходным кодом?Исходный код будет на GitHub.

Я работаю с Python и PyMongo для подключения к базе данных.В базе данных включена аутентификация в файле mongod.conf.База данных размещена на экземпляре Ubunutu 18.04, работающем в AWS.

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

Мой текущий URI выглядит следующим образом

URI = "mongo serverip --username mongo --authenticationDatabase admin -p"

Я хотел бы, чтобы IP-адрес и пароль быликаким-то образом зашифрованы, чтобы пароль и IP не были публично доступны в исходном коде.

1 Ответ

0 голосов
/ 29 января 2019

Существует только и простой способ:

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

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

Другой способ - предоставить секретные данные (пароль для имени сервера) в качестве параметров командной строки для вашего скрипта.,

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

...