2011-04-11 54 views
0

我在C#中工作,我使用mysql .net連接器與遠程mysql數據庫進行交互。在代碼中包含連接字符串並直接通過命令對象使用db是否安全?或者我應該發佈到php中間層以隱藏連接字符串嗎?c#mysql connectionstring問題

在此先感謝。

回答

1

在我看來:

  1. 不應該直接把你的連接 串在你的C#代碼,如果 您的應用程序可能是 decompiled =我的意思是WinForms應用程序。

  2. 如果您在Windows 應用程序的工作,然後嘗試實現 登錄窗口。用戶將通過 他/她的用戶名和密碼。該 解決方案需要一個mysql用戶或用戶 爲每個人將有 訪問系統。

  3. 如果您正在使用web 應用程序,則將您連接 字符串放入web.config文件中。

  4. 如果你在申請 不受限制地訪問工作,那麼我 認爲你應該實施一些 層......但要記住,絕對不能通過 SQL查詢以純文本格式通過網絡 ,因爲有人可能會嗅出它。 我會推薦某種 webservice。

+0

它的一個winform應用程序..我的應用程序的1部分實現了一個MySQL的消息提示,經常對數據庫進行查詢,比如說2秒,php層會減慢速度,你會說嗎? – brux 2011-04-11 00:31:44

+0

我會說,安全第一!就像在日常生活中一樣......每個代理人/經紀人/中間人都會增加成本(在這種情況下是時間)。如果你的查詢執行得很快(更快然後2秒),那麼我認爲它很好 - 也許應該實現某種隊列或信號量。 – 2011-04-11 08:43:54

1

然後連接字符串只存儲在PHP中間件層,所以有什麼區別?它必須存儲在某個地方。

我會保持簡單,並將其存儲在您編寫的C#應用​​程序的app.config或web.config中。

有關存儲的注意事項: - 生產連接字符串不應存儲在版本控制中。 - 生產服務器上應使用連接字符串存在生產配置文件。 - 爲了增加安全性,您可以加密的連接字符串(http://msdn.microsoft.com/en-us/library/89211k9b(v=vs.80).aspx

+0

不同的是,ConnectionString中永遠是看不見的,因爲PHP代碼是不公開的(?)從我可以因任何HTTP分析器可以抓住連接字符串作爲其從發送到B,或者是那不正確? – brux 2011-04-11 00:23:44