6

我們正在將其中一個網站遷移到ASP.Net。我們不想使用集成的安全性,它使用windows帳戶連接到sql server(不打算進入爲什麼,它只是沒有問題)。我們創建了一個連接到SQL Server的用戶名和密碼,並且希望使用該用戶名和密碼,但是,我們也不希望其他開發人員看到這些信息(可以從web.config中輕鬆讀取)....我知道它可以被加密,但它可以很容易地被開發人員解密 - 再加上加密性能會受到影響。.Net SQL Server連接字符串 - 隱藏其他開發人員的密碼

有沒有解決這個問題的方法?

回答

2

這裏的一對Encrypting Configuration Information in ASP.NET 2.0 Applications

一個很好的教程就是不給其他開發商的關鍵

或者,您也可以通過安裝的證書鎖定爲SQL認證。這樣你就可以根據客戶而不是用戶來設置安全。 http://msdn.microsoft.com/en-us/library/ff649255.aspx

我們的標準做法是在開發數據庫中使用一個「開發人員登錄」,該開發人員登錄的訪問權限有限,並且生產箱具有不同的用戶名/密碼。開發人員無法訪問生產框,只能訪問開發人員,然後通過部署腳本複製生產web.config。

+1

這適用於我和你的評論,因爲我從來沒有加密過web.config文件。但是在閱讀你的鏈接後,防止開發者設置一個對象(將sqlConn作爲新的sqlconnection(getConfigSection),IIS自動解密),然後設置一個字符串變量= object.connectionString?或者使用調試器來獲取該信息進行逐步調試? – Tommy 2010-06-01 21:14:17

+0

您將不得不從工作站或證書進行身份驗證,因爲所有開發人員都可以訪問調試器 – Glennular 2010-06-01 21:25:47

0

開發者是否需要訪問web.config文件?如果是這樣,我認爲你可能不走運。如果沒有,意味着他們不需要更改web.config文件,更改它的權限,以便只有管理員和asp.net進程才能讀取該文件。

0

根據我的經驗,從您的內部開發者那裏隱藏這種東西往往是困難的。即使在webconfig中加密配置信息仍然會顯示您的開發人員是否只是單步執行代碼...

我想,如果您有這樣做,您可以在代碼中爲您創建一個私有常量字符串數據庫字符串,然後在編譯的應用程序上使用Dotfuscator或類似程序。顯然,源代碼本身也必須加密,否則開發人員無法訪問它。

0

你無法真正保護開發者的密碼 - 除此之外,它有什麼意義? 您可以做的是將獨立的開發服務器提供給開發人員具有訪問權限和生產環境的開發服務器,而不是這些開發服務器。

不要開發人員需要直接登錄到數據庫來運行一些測試或什麼?如果他們這樣做,那麼使用應用程序使用的相同帳戶進行測試是有意義的,否則測試結果可能不會反映真實情況。

0

prompt for the password,當您第一次連接並跟蹤會話中的passowrd。現在只有你能夠從任何地方連接數據庫。將所有這些人重定向到應用程序不可用頁面,以留給其他沒有密碼的用戶。