我們現在有很多機器上運行的.net應用程序。數據庫連接字符串存儲在每個設置XML文件。每個應用程序都會啓動並作爲第一步,從其設置文件中加載該字符串。它工作正常,但如果我們必須改變我們的登錄信息,那麼多年來找到我們存儲它的所有地方將是一場噩夢。而且,對於虛擬機,我們總是添加新機器,這將是理想的部署exes/dll,讓應用程序自動安全地獲取連接字符串。我在哪裏/如何存儲SQL Server連接字符串,以便它可以安全地用於遠程應用程序?
我認爲加密字符串並將其放在我們的網絡服務器上,以便遠程應用程序可以通過http和dns名稱獲取並解密它,但這是相當簡單的,因爲安全性對於這條信息非常重要,我需要要特別小心。
所以問題是,你如何安全decimenate連接字符串到遠程應用程序,所以啓動時,他們會知道到達數據庫?一旦他們可以這樣做,他們就可以從數據庫中的配置表中獲取額外的設置。
如果客戶端使用用戶標識和密碼直接連接到SQL,那麼該信息不安全。考慮一個3層架構,其中客戶端通過WCF連接到業務/數據層,然後只有服務連接到SQL。 – Paparazzi
不幸的是,重寫代碼層來添加圖層是不可能的。另外存在同樣的問題,客戶端如何安全地知道WCF服務器在哪裏,以及如何以透明的方式進行身份驗證? – powlette
沒有相同的問題不存在。直接連接到SQL和像delete *和drop table這樣的命令與返回數據的WCF服務不同。 WCF有許多認證選項,併爲此而構建。 – Paparazzi