Я занимаюсь разработкой приложения Node.js, которое будет использовать MongoDB, и пытаюсь сделать его максимально безопасным.
Аутентификация в базе данных
Сначала я хотел ограничить доступ к базе данных, поэтому я добавил аутентификацию. Так что теперь, в терминале, я должен войти в систему следующим образом:
~$ mongo -u <myusername> -p --authenticationDatabase admin
Но затем, в моем javascript мне пришлось добавить пароль в виде простого текста в следующей строке:
// Connect to the database
mongoose.connect('mongodb://localhost/<myDB>?authSource=admin', {user: <myusername>, pass: <mypassword>, useNewUrlParser: true, useUnifiedTopology: true});
Это беспокоит меня. Это подводит меня к моему первому вопросу: Как я могу иметь ограниченный доступ к моей базе данных, не имея паролей в текстовом виде?
Между Mongoose и MongoDB
Я обнаружил, что Mongoose взаимодействует с MongoDB через TCP / IP. Я запустил Wireshark, чтобы посмотреть, смогу ли я обнаружить данные, и на самом деле я мог: снимок экрана
Внутренняя часть и MongoDB, вероятно, могут быть на 2 разных машинах. Это подводит меня к моему последнему вопросу: я видел на нескольких постах здесь, что иногда было установлено соединение SSH, но это лучший способ защитить связь?