ASP.NET 2.0 中 Web.config 内连接字符串的加密






4.07/5 (25投票s)
ASP.NET 2.0 中 Web.config 内连接字符串的加密与解密
引言
本文档为您提供了关于Web.config中连接字符串加密功能的概述,以及如何使用加密来提高安全性并与数据库保持安全连接。
关于连接字符串的加密与解密
NET Framework 2.0 允许您加密Web.config或machine.config文件中的配置节。
NET Framework 2.0 添加了对配置文件加密的支持。.NET Framework 库支持代码中的加密和解密。在本文中,我将展示如何通过加密来保护存储在配置文件中的数据,并描述配置文件节。
建议您将数据库连接字符串存储在Web.config文件中并加密这些连接字符串。
此功能允许开发人员加密配置文件中的一个或多个节。以下节可用于加密:
connectionStrings
:数据库连接字符串appSettings
:自定义应用程序设置sessionState
:配置会话状态Identity
:Web 应用程序标识,可能包括模拟凭据
我们无法在web.config和machine.config文件的以下节中使用受保护的配置功能:
processMode
runtime
mscorlib
configProtectedData
satelliteassemblies
cryptographySettings
cryptoNameMapping
cryptoCl
asses
保护敏感数据
配置加密功能可提高应用程序的安全性。如果有人能够访问web.config文件,他们也无法访问数据库信息。.NET Framework 提供了两种加密配置文件的方法:
- aspnet_regiis.exe命令行实用程序
- 开发人员应用程序代码中的加密
本文档侧重于应用程序代码方法。
以下 **命名空间** 用于通过代码方法加密配置文件:
System.Configuration
System.Web.Configuration
它包含以下两个与加密相关的方法:
ProtectSection:标记一个配置节以进行保护。用于加密的提供程序名称,它作为唯一参数传递给该方法。
UnprotectSection:移除与配置节关联的受保护加密。
示例
以下简单的 ASP.NET web.config 文件演示了配置数据的加密和解密。
步骤 1:查看 connectionStrings web.config 节
<connectionstrings><add class=""code-string"" name=""<span"">
"Conn" connectionString="Data Source=manish;Initial Catalog=Publish;
User ID=sa;Password=admin"
providerName="System.Data.SqlClient" /> </connectionstrings>
步骤 2:导入以下命名空间
我们将编写调用连接字符串或初始化连接字符串的代码。
Imports System.Configuration
Imports System.Web.Configuration
步骤 3:创建一个函数(configencryption)
此函数可用于加密和解密。
来自 ASP.NET Web 窗体的以下 VB.NET 代码可加密配置文件中的 connectionStrings 节。
Public Shared Function webencrypt()
Dim config As Configuration = WebConfigurationManager.OpenWebConfiguration("~")
'' Write the section name of web.config file (connectionStrings)
Dim configSection As ConfigurationSection = c_
onfig.GetSection("connectionStrings")
'' Check the section of web.config file (connectionStrings) if Protected
'' then UnprotectSection (decrypt) the section
If configSection.SectionInformation.IsProtected Then
configSection.SectionInformation.UnprotectSection()
config.Save()
Else
'' Check the section of web.config file (connectionStrings)
'' if UnprotectSection then
'' protect (encrypt) Section the section
configSection.SectionInformation.ProtectSection_
("DataProtectionConfigurationProvider")
config.Save()
End If
End Function
步骤 4:在 *.vb 文件中初始化连接之前调用此函数
Call webencypt()
sqlstring = System.Configuration.ConfigurationManager.ConnectionStrings_
("conn").ConnectionString
在运行上述代码并加密web.config文件后,您可以在 ASP.Net 项目中打开web.config文件。web.config节的内容现在将显示为加密状态。
步骤 5:查看 connectionStrings web.config 节(解密后)
<connectionstrings class=""code-string""
configprotectionprovider=""<span"">"DataProtectionConfigurationProvider">
<encrypteddata>
<cipherdata>
<ciphervalue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAe3IeYtVA1Ein16Kz9W96UQQAAAACAAAAAA
ADZgAAqAAAABAAAABLQdIlQjmYEpvL/YlcKtQIAAAAAASAAACgAAAAEAAAALJbofuwZFVfY0X5w
PO172OYAQAAM1JJuZpvWvHlvZZCGMpLXmvkURVkdv3gjWjED3y0X29kGfKrecXPg+xngFAQ1qG4
Ruxa96leDTo+Eb1QrvXgZgdABN+rXmmzPwi9csOCorTidlJ/55drL96zyeQrynPfs4HRqtRPmc8
4F/4hVbEe9xnKIiykSPEYSnOIef4arj567y5vmwcgh8b11d4wmbMIbrvgWFOWniJRXgvkHAYMje
/R5C6yRDDqr7OCkvZoX/hqe+mkJRvpHewCXJBIcbHsF2sCs3WZQlNbDY7H9J3EESPR4S0qPTEb3
q8GD31vjMPo7WbDTTN8/lXi6BbooyY6IPviIkxUvmbAxxiWXmz7J93WYKqnhFUHunv8JgoBgc8a
6t55zpsG1oNGSJAAJ7qBu0Y1+gktPQof/DabkL54Zl8wK8/u6q7mU+nJbaHW9AKC6bfCWa16QXV
6jF2QWHGqrsXzRqURXsG0t+9bdNwmiNHimpVc6p+JhiXNd9Ym8NbDCCS2ICgNDActd5MmGfJpHM
PbubNuVgcueSdH8bdHJXSc1hucDURrFAAAAHOaFiNRTxD+d8YctPO/HiGD9NeV </cipherdata>
步骤 6:下次页面回发时,查看 connectionStrings web.config 节
<connectionstrings><add class=""code-string"" name=""<span"">
"Conn" connectionString="Data Source=manish;Initial Catalog=Publish;
User ID=sa;Password=admin"
providerName="System.Data.SqlClient" />
</connectionstrings>
结论
在本文中,我们了解了如何在 ASP.NET 2.0 web.config文件中加密和解密 connection strings 节。
免责声明
本文档仅用于教育目的,是本人对该主题的笔记、材料和理解的汇编。