Active Record (Rails) Безопасное соединение MySQL - PullRequest
1 голос
/ 30 ноября 2010

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

Я буду развертывать Ruby наПриложение Rails скоро (Active Record ORM), и моя база данных (MySQL или PostgreSQL) будет расположена во внешнем местоположении (вне диапазона 127.0.0.1).

Я могу подключиться к внешней базе данных MySQL,просто отвязав адрес в /etc/mysql/my.conf и добавив пользователя, который принимает соединения из внешних источников.Однако, поскольку данные передаются с моего сервера приложений на мой сервер MySQL, насколько (в) это безопасно?

Нужно ли выполнять какую-либо форму шифрования?Делает ли Active Record что-нибудь в фоновом режиме, чтобы защитить данные от захвата (или как вы это называете) во время передачи?Или мои данные достаточно безопасны по умолчанию с MySQL и / или PostgreSQL при работе с базами данных во внешних местоположениях?

Короче говоря: есть ли что-нибудь (дополнительное), которое * должен делать, когда мойБаза данных MySQL или PostgreSQL расположена во внешнем местоположении, а не в локальном диапазоне?

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

Спасибо!

Ответы [ 2 ]

2 голосов
/ 30 ноября 2010

Это сильно зависит от того, как соединены сервер приложений и сервер базы данных.

Если трафик маршрутизируется в дикой природе (т.е. у вас нет виртуальной частной сети, соединяющей ваши серверы), вы можете установить SSL-соединение между вашим Rails-приложением и MySQL:

  • MySQL поддерживает безопасные (зашифрованные) соединения между клиентами MySQL и сервером с использованием протокола Secure Sockets Layer (SSL). Ссылки .
  • ActiveRecord имеет опции для защиты SSL (:sslkey и другие в database.yml). Ссылка

Ограничение внешнего подключения к MySQL с данного IP для пользователя с низкими привилегиями все еще применяется.

1 голос
/ 30 ноября 2010

Помимо возможности запуска по SSL, вы можете и должны заблокировать сервер базы данных, чтобы принимать соединения только с определенных IP-адресов.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...