Dot-Net

將密碼放在配置文件中的好方法是什麼?

  • December 11, 2019

我有一堆 .Net 配置文件,其中包含 Windows 服務帳戶和/或 SQL 伺服器登錄的密碼。我想將它們從配置文件中刪除並保持它們更安全。

在配置文件中設置密碼有什麼好的替代方法?

謝謝

您實際上可以加密配置文件的部分。正如您在問題中詢問的那樣,它與配置文件“分開”,但它比將未加密/明文密碼儲存在配置文件中更安全。

加密連接字元串的範例(來自命令提示符):

aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" -prov "RsaProtectedConfigurationProvider"

請注意,同樣的技術可以應用於連接字元串以外的部分。

請參閱教程:https ://msdn.microsoft.com/en-us/library/zhhddkxy%28v=vs.140%29.aspx

要解密和加密 Web.config 文件的一部分,ASP.NET 程序必須有權讀取相應的加密密鑰資訊。有關更多資訊,請參閱導入和導出受保護的配置 RSA 密鑰容器。

應用程序將能夠本機使用加密值,但如果使用者可以通過文件共享訪問配置文件,則字元串仍將被加密。

另一個可能有一些額外資訊的教程:http: //www.codeproject.com/Tips/795135/Encrypt-ConnectionString-in-Web-Config

請注意,使用適當的密鑰加密是可逆的。您最安全的選擇是鎖定遠端並共享對儲存配置文件的區域的訪問。如果沒有其中任何一個,除了伺服器管理員之外,任何人都無法訪問您的配置文件。

我不得不不同意這裡給出的答案。假設您的程序需要在沒有人輸入密碼的情況下啟動,該程序需要以任何方式訪問一些明文憑據。如果您加密配置文件,您將解密該配置文件的密鑰放在哪裡?加密配置文件並沒有帶來任何好處,它只會使管理變得更加困難,而安全性並沒有明顯改善。

最後,您必須依靠持有該憑證的機器的安全性。盡可能地強化它,盡可能地限制對它的訪問。

有一篇更長的文章詳細闡述了這一事實。

引用自:https://stackoverflow.com/questions/28467971