web.xml数据库连接字符串如何解密

web.xml数据库连接字符串如何解密,第1张

一、如何对Web.config中数据库连接字符串进行加解密,避免明文方式。 1)概述:

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)。

如果不加驱动选项,则采用默认驱动进行加密。

楼主是想在WEB.CONFIG文件中加密数据库联接字符串吧?

web.config中加密连接字符串

旧版本的ASP.NET将连接字符串直接保存在ASPX页面中。回想一下,连接字符串包含了数据服务器名称和用户账户等信息,有时候甚至还包含了密码。在代码中包含以上信息是非常不好的习惯,原因有二。首先,这些信息可以被设计小组中的每一位程序人员看到(但是站点访问者不能在浏览器上看到)。第二,在整个Web站点中的每一个拥有该连接的地方,都必须进行维护和更新。更新密码成为了一项繁重的工作。

ASP.NET 2.0提供了一个选项可以将连接字符串移动至Web.config文件的连接区域,给字符串一个名称并将其加密。然后ASP.NET 2.0页面就通过这个名称来引用连接字符串。保存连接字符串至Web.config的步骤并不复杂。打开位于站点根目录下的Web.config文件。找到被<connectionString>界定的区域(如果不存在,可自行添加)并在<Add>标记中输入如下代码。该标记有三个属性:name、connectionString和providerName。属性name就是将会在页面中使用的连接字符串的普通名称。connectionString属性应当设置为连接至数据库的完整的连接字符串,如前所述。

e.g.

<?xml version="1.0"?>

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">

<connectionStrings>

<add name="SQLProfileConnString" connectionString="server=FOXdatabase=MSPetShop4Profileuser id=mspetshoppassword=pass@word1min pool size=4max pool size=4"

providerName="System.Data.SqlClient" />

<add name="SQLMembershipConnString" connectionString="server=FOXdatabase=MSPetShop4Servicesuser id=mspetshoppassword=pass@word1min pool size=4max pool size=4"

providerName="System.Data.SqlClient" />

<add name="SQLConnString1" connectionString="server=FOXdatabase=MSPetShop4user id=mspetshoppassword=pass@word1min pool size=4max pool size=4"

providerName="System.Data.SqlClient" />

<add name="SQLConnString2" connectionString="server=FOXdatabase=MSPetShop4user id=mspetshoppassword=pass@word1max pool size=4min pool size=4"

providerName="System.Data.SqlClient" />

<add name="SQLConnString3" connectionString="server=FOXdatabase=MSPetShop4Ordersuser id=mspetshoppassword=pass@word1min pool size=4max pool size=4"

providerName="System.Data.SqlClient" />

<add name="OraProfileConnString" connectionString="" providerName="System.Data.OracleClient" />

<add name="OraMembershipConnString" connectionString="" providerName="System.Data.OracleClient" />

<add name="OraConnString1" connectionString="" providerName="System.Data.OracleClient" />

<add name="OraConnString2" connectionString="" providerName="System.Data.OracleClient" />

<add name="OraConnString3" connectionString="" providerName="System.Data.OracleClient" />

</connectionStrings>

<appSettings>

<!-- Pet Shop DAL configuration settings. Possible values: PetShop.SQLServerDAL for SqlServer, PetShop.OracleServerDALfor Oracle. -->

</appSettings>

</configuration>

通过使用命令,可以将Web.config文件的连接字符串区域加密。当ASPX页面请求连接字符串时,将由ASP.NET自动对信息进行解密。加密必须由以下命令行来执行。依次单击Start/Run/cmd并切换至C:\WINDOWS\ Microsoft.net\ Framework\ v2.0.xxxx,其中xxxx是您的软件版本。如果C:\Websites\BegAspNet2Db是站点根目录的话,即可输入如下命令行:

aspnet_regiis –pef connectionStrings C:\Websites\BegAspNet2Db

加密连接字符串的命令行工具还可以使用虚拟路径语法(在IIS元数据库中的路径),而无需指定Web.config文件的完全限定路径,如下所示:

aspnet_regiis –pe connectionStrings –app /BegAspNet2Db

一旦执行完了加密过程,就可以打开Web.config文件,但是连接字符串已经被混淆。当ASP.NET需要,连接字符串即可自动解密,或者如果需要进行一些更改,例如修改密码,则可以手动输入以下代码来解密。

aspnet_regiis –pdf connectionStrings c:\Websites\BegAspNet2Db

请注意,在默认情况下,加密过程使用了一个基于加密算法执行的机器的键。解密过程(无论手动还是在处理页面过程中)必须发生在与加密相同的机器上。例如,作为XCOPY部署的一部分,移动Web.config至另外一台机器将会导致Web.config无法解密,所以推荐在部署Web站点至最终机器之后,再将连接字符串进行加密。

PS:petshop4.0安装的时候如果选择 “Full Install”,那么配置文件默认就加密了,这也是我一开始怎么也找不到连接字符串,然后用windows集成验证怎么也登不上去的原因。

后来发现在安装目录下有两个批处理文件:

1、加密EncryptWebConfig.bat

@echo off

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pef "connectionStrings" "D:\Program Files\Microsoft\.NET Pet Shop 4.0\Web"

PAUSE

2、解密DecryptWebConfig.bat

@echo off

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pdf "connectionStrings" "D:\Program Files\Microsoft\.NET Pet Shop 4.0\Web"

PAUSE

加黑的就是两个文件的区别。

用sql2000之类的应该能打开吧。但是需要密码。目前应该没破解工具。 http://www.54cw.net 参考资料: http://54cw.net

使用UltraEdit等二进制编辑工具打开数据库文件,通过查找“DBA”(二进制使用“44 42 41”),定位到底一个位置,注意观察这个区域,前面一般有“dbo”、“PUBLIC”,后面有“SYS”。这个区域就是ASA保存用户口令的数据段。把“SYS”之前四个空字符“00 00 00 00”之前到“44 42 21”之间的所有二进制数据,改为如下二进制数(代表SQL):

24 36 3BDF 7D B5 77 B2

82 45 67 6D C2 DB D6 E7 F2 64 28 C3 55 22 97 F5

6C F5 8C 0F 8C C5 71 BA 15 C9 5E BC 43 01 59 01

59 01 59 01 4E 01 4E 01 4E 17 00 00

改好后,保存数据库,DBA密码就是“SQL”了。当然还可以先建立一个测试数据库TEST,输好自已 DBA密码后,按以上方法查找到密码区,把密码值写入到要更改的数据库文相关区,即可随意更改成自已想要的密码了.以上方法 ASA5,ASA7通过


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9985283.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存