2013-09-10 35 views
1

我在一個共享服務器帳戶中使用MySQL,我的擔心是如果黑客監視我的應用程序和該MySQL服務器之間的連接。如何在Zeos中安全地與我的遠程數據庫進行通信?

無論如何是連接加密還是原始數據通過(包括連接時Zeos TZConnection組件通知服務器什麼是數據庫名,用戶名和密碼)?

如果它是生的,我怎麼能給它添加一些保護?

+0

我的意思是說,對於本地服務器,我必須在所有建築物之間同步本地數據庫。使用單個遠程24/7服務器將取消此方法。我關心的是這種通信安全。 – PSyLoCKe

+1

您不直接從您的應用程序連接到數據庫。您使用https將應用程序連接到服務器上的應用程序,並且該服務器應用程序處理與數據庫的交互。您可以通過Google或Bing對https和Delphi進行研究。 –

+0

我編輯了這個問題,同步文本是不相關的 –

回答

2

其實它不是你的TZConnection與服務器對話。相反,它與libmysql.dll通信,該發送和接收來自Mysql server的數據。

爲了保護您與服務器的連接,您可以使用SSL。您將需要3個證書:

  • CA-cert.pem
  • 客戶cert.pem
  • 客戶key.pem

你可以找到關於如何在這其中產生的信息MySQL link

一旦你有他們,你需要設置TZConnection指示SSL應作如下用途:關於MySQL和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'; 

更多信息可以在此discussion中的Zeos論壇上找到。

+0

謝謝。這3個文件可以使用非顯而易見的名稱嗎? – PSyLoCKe

+0

也可以指向Web中的文件嗎? – PSyLoCKe

+1

@EASI,據我所知你可以改變3個文件的名字,但從來沒有嘗試過。關於指向網絡上的證書文件,這是我不知道的。我會試着用'MySQL'標籤在一個新問題中提出這個問題,因爲它與Delphi或Zeos無關。 –

相關問題