我有一個.NET應用程序託管在一個Web服務器和一個MSSQL數據庫託管在不同的服務器上。在web.config中連接到MSSQL時沒有連接字符串
作爲安全檢查清單的一部分,我不應該在我的web.config文件中提到數據庫證書(連接字符串)。 (不在任何文件中)
如何連接到數據庫而沒有在我的web.config中提到的細節。
任何幫助將不勝感激。
謝謝
我有一個.NET應用程序託管在一個Web服務器和一個MSSQL數據庫託管在不同的服務器上。在web.config中連接到MSSQL時沒有連接字符串
作爲安全檢查清單的一部分,我不應該在我的web.config文件中提到數據庫證書(連接字符串)。 (不在任何文件中)
如何連接到數據庫而沒有在我的web.config中提到的細節。
任何幫助將不勝感激。
謝謝
您有幾個選項。
SqlConnection
或任何其他類型的數據庫連接時,請使用重載傳入連接字符串。但是這實際上並不比web.config好,因爲您可以反編譯程序集並查看連接字符串。加密web.config會給安全性帶來誤解。鑑於對機器的訪問,可以使用以下命令對其進行解密:aspnet_regiis -pd「connectionStrings」-app「/ SampleApplication」 –
@ShirazBhaiji完全同意。加密web.config是一種保護文件的方法,當某人有權訪問該文件時,該文件不具有對服務器或用於加密該文件的密鑰對的物理訪問權限。任何加密都是如此。 –
@ShirazBhaiji,如果用戶有文件訪問服務器,他們可以獲得比webconfig數據更多的東西,比如dll並使用反射來獲取源代碼。 – gunr2171
你可以存儲連接字符串:
你應該有不包含用戶名的連接字符串編碼和密碼,而是使用可信連接,該連接使用應用程序池的標識。
你的代碼中的硬編碼仍然在服務器上的一個文件中。可能它不像web配置那麼明顯,但它仍然存在,任何人都可以看到它們是否反編譯你的程序集。 –
你可以嘗試使用聲明的連接字符串
http://asphive.wordpress.com/2013/01/28/connection-strings-without-web-config/
你不能加密的Web配置的數據庫憑據?
你可以搬到Azure嗎?您可以將連接字符串放入角色配置中。這不會被存儲在服務器上的文件中。 AWS上可能有類似的情況。 –
保持連接字符串散列值,這是你最好的選擇 –