Как я могу безопасно общаться с моей удаленной базой данных в Zeos?

Я использую MySQL в общей учетной записи сервера, и я беспокоюсь, что хакер контролирует соединение между моим приложением и этим сервером MySQL.

Является ли это соединение зашифрованным так или иначе, или это необработанные данные, проходящие через (в том числе в момент соединения, когда компонент Zeos TZConnection сообщает серверу, что такое имя базы данных, имя пользователя и пароль)?

Если он сырой, как я могу добавить к нему некоторую защиту?

1 ответ

На самом деле это не ваш TZConnection который говорит с сервером. Вместо этого он общается с libmysql.dll который отправляет и получает данные с Mysql server.

Чтобы защитить ваше соединение с сервером, вы можете использовать SSL. Вам понадобятся 3 сертификата:

  • CA-cert.pem
  • клиент-cert.pem
  • клиент-key.pem

Вы можете найти информацию о том, как сгенерировать их в этой ссылке MySQL.

После их использования вам необходимо настроить TZConnection чтобы указать, что SSL следует использовать следующим образом:

Connection.Properties.Values['MYSQL_SSL'] := 'TRUE';
Connection.Properties.Values['MYSQL_SSL_CA'] := 'c:/MyPath/CA-cert.pem';
Connection.Properties.Values['MYSQL_SSL_CERT'] := 'c:/MyPath/client-cert.pem';
Connection.Properties.Values['MYSQL_SSL_KEY'] := 'c:/MyPath/client-key.pem';

Более подробную информацию о MySql и SSL можно найти в этой дискуссии на форумах Zeos.

licensed under cc by-sa 3.0 with attribution.