Web.Config 中可以存儲數據庫連接語句,通常存於 <connectionString>配置節中,程序調用非常方便,但是在系統的應用過程中,利用明文存儲這些敏感信息是不安全的,這就需要對配置信息進行加密,加密後即使攻擊者獲取了對配置文件的訪問,也可以使攻擊者難以獲取對敏感信息的訪問,從而改進應用程序的安全性。
使用 ASP.NET IIS 註冊工具 (Aspnet_regiis.exe) 加密或解密 Web 配置文件的各節。而在在處理 Web.config 文件時,ASP.NET 將自動解密已加密的配置元素。
要加密配置文件的內容, 通過Aspnet_regiis.exe 工具與 –pe 選項以及要加密的配置元素的名稱壹起使用,利用.NET Framework 提供的2種受保護配置程序來實現節點加解密:
名為DataProtectionConfigurationProvider的 DPAPIProtectedConfigurationProvider 實例使用 Windows 數據保護 API (DPAPI) 對數據進行加密和解密。
名為RsaProtectedConfigurationProvider的 RsaProtectedConfigurationProvider 實例使用 RSA 加密算法對數據進行加密和解密。該提供程序配置為默認提供程序
下面就這2中加密方式,分別進行舉例如下:
2)使用DPAPIProtectedConfigurationProvider 來加解密配置節
利用aspnet_regiis -pef connectionStrings 對web.config 加密 在服務器命令提示符下,輸入如下命令:
C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -pef connectionStrings D:\程序\某系統\EpointBid_HuiYuan –prov DataProtectionConfigurationProvider 正在加密配置節? 成功!
-pef 指定兩個參數:
這裏 connectionStrings 是要進行加密的配置節,後面是具體的程序路徑 ?這裏 D:\程序\某系統\EpointBid_HuiYuan 是要加密的配置文件所在的物理目錄。-prov 表示使用哪個驅動來加密,壹***有兩個驅動可選,在類似於
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG 的位置,我們可以找到 machine.config 文件,在其 configProtectedData 配置節,我們可以看到這兩個驅動的名稱,以及默認的驅動是哪壹個。這兩個驅動是 RsaProtectedConfigurationProvider(類名 RsaProtectedConfigurationProvider,詳細操作見下說明示例)和
DataProtectionConfigurationProvider(類名 DpapiProtectedConfigurationProvider)。
如果不加驅動選項,則采用默認驅動進行加密。