[英]Encrypting appSettings in web.config
我正在開發一個 web 應用程序,它需要將用戶名和密碼存儲在 web.Config 中,它還引用了一些將由 web 應用程序本身而不是客戶端請求的 URL。
我知道 .Net 框架不允許提供 web.config 文件,但是我仍然認為將此類信息以純文本形式保留是不好的做法。
到目前為止我讀過的所有內容都要求我使用命令行開關或將值存儲在服務器的注冊表中。 我無法訪問這些,因為主機在線,我只能訪問 FTP 和控制面板(掌舵)。
任何人都可以推薦我可以使用的任何好的、免費的加密 DLL 或方法嗎? 我寧願不開發自己的!
感謝到目前為止的反饋,但我無法發出命令,也無法編輯注冊表。 它必須是一個加密實用程序/助手,但只是想知道是哪一個!
編輯:
如果您不能使用 asp 實用程序,您可以使用SectionInformation.ProtectSection方法加密配置文件。
代碼項目示例:
雖然乍一看似乎很簡單,但我遇到了一些障礙。
所以我提供了使用默認加密提供程序對我有用的步驟(加密appSettings部分):
加密web.config 中的部分:
C:
,假設為以下步驟。D:\\Apps\\myApp
- 將其替換為您在步驟 3 中使用的路徑。cd "C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319"
,在 32 位 Windows 系統上使用Framework
而不是Framework64
cd /D "D:\\Apps\\myApp"
/D
開關將自動更改驅動器。 這里它會改變路徑和驅動器,所以當前目錄將是D:\\Apps\\myApp
之后。c:aspnet_regiis -pef appConfig .
您應該會看到此消息:
Microsoft (R) ASP.NET RegIIS 版本 4.0.30319.0 管理實用程序,用於在本地計算機上安裝和卸載 ASP.NET。 版權所有 (C) 微軟公司。 版權所有。 加密配置部分...成功!
您還可以解密web.config 中的部分:這些是相同的步驟,但對於 aspnet_regiis,使用選項-pdf
而不是-pef
。
也可以加密 web.config 的其他部分,例如您可以通過以下方式加密連接字符串部分:
aspnet_regiis -pe "connectionStrings" -app "/SampleApplication"
注意:上述加密對您的 Web 應用程序是透明的,即您的 Web 應用程序無法識別設置已加密。
您還可以選擇使用非透明加密,例如使用 Microsoft 的 DPAPI 或將AES與框架的AES Class一起使用。
它是如何使用DPAPI完成的,我已經在 Stackoverflow 中進行了描述。 DPAPI 的工作原理非常相似,因為它使用機器或用戶憑據的密鑰。 通常,非透明加密為您提供更多控制權,例如您可以添加 SALT,或者您可以使用基於用戶密碼的密鑰。 如果您想了解有關如何從密碼短語生成密鑰的更多信息,請查看此處。
使用 aspnet_setreg.exe http://support.microsoft.com/kb/329290
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.