当前位置:首页 » 数据仓库 » webconfig数据库连接加密
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

webconfig数据库连接加密

发布时间: 2022-12-19 23:47:42

‘壹’ c# web.config加密有什么用处

加密必然是为了保护敏感信息(比如,数据库联接字符串) ,或者你不想要给其他人看到的信息。

经常会被加密的节点又一下几个:
1) <appSettings> 一般包含一些我们自定义的信息。
2) <connectionStrings> 这个比较容易理解,包含连接数据库用的字符串。
3) <identity> 包含使用impersonate时的账户信息。
4) <sessionState> 包含将session置于process外的连接字符串。

总之,加密的主要目的是为了安全, 信息安全,知识产权安全等。

ASP.NET提供了两种加密方式,DPAPI和RSA。我们可以选择其中一种方式来加密我们的web.config。具体加密方式也有两种,利用aspnet_regiis.exe工具或在程序中用代码加密。

‘贰’ 怎么对数据库连接字符串进行加密和解密

给方法:开始--->运行,输入cmd,接着输入以下内容

加密:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pef "connectionStrings" "你的Web项目路径"

解密:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pdf "connectionStrings" "你的Web项目路径"

.NET为版本的路径自行修改,其中connectionStrings连接字符串的名称。

需要注意的是,加密过程中使用了一个基于本机的密钥,这意味着解密过程必须在同一台计算机上完成。如果是将加密后的Web.config文件移动到其它计算机上,那么Web.config文件中的连接字符串将不能够正常解密。

‘叁’ web.config如何配置数据库连接

--在WEB.config配置下面的节点,connectionstring写的是连接数据库的字符串datasource是填写的数据库,initialcatalog是连接的数据库名称,user id是连接数据的账户名,password是账户的密码 x0dx0ax0dx0a  x0dx0a x0dx0a--在web应用层获取这段数据库连接字符串的语句是x0dx0aConfigurationManager.ConnectionStrings["connstring"].ToString()

‘肆’ asp.net的配置文件web.config怎么解密

使用“”形式来加密
test.aspx程序文件基本如上,

section.SectionInformation.ProtectSection(“”);
改成
section.SectionInformation.ProtectSection(“”);
但这个时候你访问网站的时候很有可能会出现
说明:
在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。
分析器错误信息: 未能使用提供程序“”进行解密。
提供程序返回错误信息为: 打不开 RSA 密钥容器。
这样的错误,解决方法是:
进dos运行:aspnet_regiis -pa “NetFrameworkConfigurationKey”
“NT AUTHORITY\NETWORK SERVICE”
如果运行出错,需要把目录 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
放入环境变量path中。此时就可以成功访问网站了。
同样可以通过命令行来实现“”加密
注意:你也可以不运行 aspnet_regiis -pa “NetFrameworkConfigurationKey”
“NT AUTHORITY\NETWORK SERVICE”命令来注册默认的
的RSA 密钥容器
方法如下:
1)创建一个可导出的rsa密钥容器,命名为Key
aspnet_regiis -pc “Key” -exp
2)在你要加密的信息前面指定密钥容器,如:
<configProtectedData><providers><clear /><add name=”KeyProvider” type=”System.Configuration., System.Configuration, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL” keyContainerName=”Key” useMachineContainer=”true”/></providers></configProtectedData><connectionStrings><add name=”sqlConnString” connectionString=”Data Source=yourIP;Initial Catalog=test;User Id=yourID;Password=yourPassword;”providerName=”System.Data.SqlClient” /></connectionStrings>
并且确保在configuration节的xmlns属性有如下值:
3)对配置文件进行加密
aspnet_regiis -pef “connectionStrings” “E:\project\Test” -prov “KeyProvider”
参数分别为:需要加密的配置节、项目所在目录的物理路径、加密所使用的密钥容器名称
再看web.config文件,就会发现connectionStrings节已经被加密了,但
是运行程序会发现程序仍然可以正确访问数据库。
此时,只需运行:
aspnet_regiis -pdf “connectionStrings” “E:\project\Test”
就可以对web.config文件进行解密。
(注意,如果还是有错误,那可能是您没有给生成的密匙文件足够的权限,
去到C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
目录下,找到刚生成的密匙文件,把network service用户的读取权限赋予给它,就可以了,
直接用命令的话也可以:命令如下 aspnet_regiis -pa “Key” “NT AUTHORITY\NETWORK SERVICE” ,
可能需要重新启动iis
4)把密钥容器导出为xml文件
aspnet_regiis -px “Key” “e:\Key.xml”
这个命令只导出公钥,因此以后只能用于加密,而无法解密。
aspnet_regiis -px “Key” “e:\Keys.xml” -pri
这个则连私钥一起导出了,所以我们要用这个。
5)把密钥容器删除
aspnet_regiis -pz “Key”
删除后再运行程序,会提示出错:
分析器错误信息: 未能使用提供程序“KeyProvider”进行解密。
提供程序返回错误信息为: 打不开 RSA 密钥容器。
同理可以证明,在任何一台未安装正确的密钥容器Key的机器上,
程序都无法对connectionStrings节进行解密,因此也就无法正常运行。
6)导入key.xml文件
aspnet_regiis -pi “Key” “e:\Keys.xml”
此时,再运行程序会发现又可以解密了。证明加密与解密机制运行正常。
最后说一下这个机制所提供的安全性保障可以运用在什么方面:
对winform程序的app.config进行加密实际意义并不大,因为无论如何,
客户机都可以通过运行aspnet_regiis -pdf 来对配置文件进行解密,从而暴露敏感信息。
对于web.config进行加密的意义也仅限于,当web.config文件不小心泄露时,
不会同时泄露敏感信息,如果恶意攻击者已经取得了在服务器上运行程序的权限,
那么同app.config一样,可以很容易通过通过运行aspnet_regiis -pdf 获取明文了。
还有,通过aspnet_regiis -pa “Key” “NT AUTHORITY\NETWORK SERVICE”
控制对不同用户对密钥容器的访问权限,应该还可以进一步获取一些安全性,
比如可以控制某些用户即使登录到服务器上,也无法用aspnet_regiis -pdf对配置文件进行解密。

‘伍’ webapi的webconfig怎样配置数据库连接

先打开vs2010软件,找到项目文件,双击web.config
VS2010中web.config配置数据库连接
第一种:取连接字符串
string connString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["SqlConnStr"].ConnectionString;
或者
protected static string connectionString = ConfigurationManager.ConnectionStrings["SqlConnStr"].ConnectionString;
web.config文件:加在</configSections>后面
<connectionStrings> <remove name="LocalSqlServer" /> <add name="SqlConnStr" connectionString="user id=xx;password=xx;initial catalog=database_name;data source=.\sqlxxxx" /> </connectionStrings>
VS2010中web.config配置数据库连接
第二种:取连接字符串:
string myvar=configurationsettings.appsettings["connstring"];
web.config文件:加在<appsettings>和</appsettings> 之间
<appsettings> <add key="connstring" value="uid=xx;pwd=xx;database=batabase_name;server=(local)" /> </appsettings>
据说两者通用,但是第二种是asp.net2.0的新特性,建议使用第二种。其实我一直有个疑问,两个字符串中的UID;PWD;和User ID; Password;是否等价。根据网上我查到的资料是可以互换通用的。
VS2010中web.config配置数据库连接
连接SQL Server数据库的机制与连接Access的机制没有什么太大的区别,只是改变了Connection对象和连接字符串中的不同参数.
首先,连接SQL Server使用的命名空间不是"System.Data.OleDb",而是"System.Data.SqlClient".
其次就是他的连接字符串了,我们一个一个参数来介绍(注意:参数间用分号分隔): "user id=sa":连接数据库的验证用户名为sa.他还有一个别名"uid",所以这句我们还可以写成"uid=sa". "password=":连接数据库的验证密码为空.他的别名为"pwd",所以我们可以写为"pwd=". 这里注意,你的SQL Server必须已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录.如果你的SQL Server设置为Windows登录,那么在这里就不需要使用"user id"和"password"这样的方式来登录,而需要使用"Trusted_Connection=SSPI"来进行登录.
initial catalog=Northwind":使用的数据源为"Northwind"这个数据库.他的别名为"Database",本句可以写成"Database=Northwind". "Server=YourSQLServer":使用名为"YourSQLServer"的服务器.他的别名为"Data Source","Address","Addr".如果使用的是本地数据库且定义了实例名,则可以写为"Server=(local)\实例名";如果是远程服务器,则将"(local)"替换为远程服务器的名称或IP地址. "Connect Timeout=30":连接超时时间为30秒.
在这里,建立连接对象用的构造函数为:SqlConnection.
7
最后要保存你所更改的文件,右键 保存(ctrl+S).

‘陆’ 初级菜鸟之web.config的数据库连接设置

我用的是 mysql,以下内容是vs下的设置,从别地找来的
给一个我正在用的web.config文件给你参考
<?xml version="1.0"?>
<configuration>
<system.web>
<pages validateRequest="false"/>
<!-- 动态调试编译
设置 compilation debug="true" 以启用 ASPX 调试。否则,将此值设置为
false 将提高此应用程序的运行时性能。
设置 compilation debug="true" 以将调试符号(.pdb 信息)
插入到编译页中。因为这将创建执行起来
较慢的大文件,所以应该只在调试时将此值设置为 true,而在所有其他时候都设置为
false。有关更多信息,请参考有关
调试 ASP.NET 文件的文档。
-->
<!--compilation defaultLanguage="c#" debug="true">
<compilers>
<compiler language="c#" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" extension=".cs" compilerOptions="/d:DEBUG;TRACE"/></compilers></compilation-->
<!-- 自定义错误信息
设置 customErrors mode="On" 或 "RemoteOnly" 以启用自定义错误信息,或设置为 "Off" 以禁用自定义错误信息。
为每个要处理的错误添加 <error> 标记。

"On" 始终显示自定义(友好的)信息。
"Off" 始终显示详细的 ASP.NET 错误信息。
"RemoteOnly" 只对不在本地 Web 服务器上运行的
用户显示自定义(友好的)信息。出于安全目的,建议使用此设置,以便
不向远程客户端显示应用程序的详细信息。
-->
<customErrors defaultRedirect="error.aspx" mode="RemoteOnly"/>
<!-- 身份验证
此节设置应用程序的身份验证策略。可能的模式是 "Windows"、
"Forms"、 "Passport" 和 "None"

"None" 不执行身份验证。
"Windows" IIS 根据应用程序的设置执行身份验证
(基本、简要或集成 Windows)。在 IIS 中必须禁用匿名访问。
"Forms" 您为用户提供一个输入凭据的自定义窗体(Web 页),然后
在您的应用程序中验证他们的身份。用户凭据标记存储在 Cookie 中。
"Passport" 身份验证是通过 Microsoft 的集中身份验证服务执行的,
它为成员站点提供单独登录和核心配置文件服务。
-->
<authentication mode="Windows"/>
<!-- 授权
此节设置应用程序的授权策略。可以允许或拒绝不同的用户或角色访问
应用程序资源。通配符: "*" 表示任何人,"?" 表示匿名
(未经身份验证的)用户。
-->
<authorization>
<allow users="*"/>
<!-- 允许所有用户 -->
<!-- <allow users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
<deny users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
-->
</authorization>
<!-- 应用程序级别跟踪记录
应用程序级别跟踪为应用程序中的每一页启用跟踪日志输出。
设置 trace enabled="true" 可以启用应用程序跟踪记录。如果 pageOutput="true",则
在每一页的底部显示跟踪信息。否则,可以通过浏览 Web 应用程序
根目录中的 "trace.axd" 页来查看
应用程序跟踪日志。
-->
<trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true"/>
<!-- 会话状态设置
默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
若要禁用 Cookie,请设置 sessionState cookieless="true"。
-->
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20"/>
<!-- 全球化
此节设置应用程序的全球化设置。
-->
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
<xhtmlConformance mode="Legacy"/>
<compilation debug="true"/></system.web>
<appSettings>
<add key="ConnectionString" value="server=;database=;uid=;pwd=;"/>
</appSettings>
</configuration>

‘柒’ InstallShield12 关于修改web.config文件,连接字符串中的数据库用户名与密码进过加密处理...

在你另一个同样的问题里给了回答了,这里再概括性的说一下
首先,加密这个操作IS本身应该是不支持的,你可以考虑调用外部dll的方式
然后,你的这个需求,应该是按这样一个思路去考虑:
1.接收用户的输入,接收数据库设置的对话框,IS是有的,不过这对话框还带有数据库链接测试等功能,建议最好不要去动,新手肯定会昏头,所以还是自己自定义一个对话框比较合适
2.自定义对话框接收用户输入,无非就是做个对话框,然后设置几个porperty用来存值
3.在XML文件设置界面设置好这几个property要插入到XML文件中的位置

差不多就是这样了

同样的,你的问题说难不难,但对于新手还是有点复杂的,建议你到群里来,有资料自己参考,也可以向高手提问

‘捌’ 如何对web.config进行加密和解密

在WEB网站开发过程中,如果我们将数据库连接字符串封装到.DLL文件中,将会给数据库和程序的迁移带来麻烦,因为万一服务器地址或
者数据库发生变更,那么我们就不得不修改源程序并重新将其编译。更好的解决方法是将数据库连接字符串写入到web.config配置文件中,可问题是将连
接字符串写入到web.config文件中之后,任何人都能打开看到所连接的数据库名和密码,又会带来安全隐患,因此为了保证数据库的安全性,我们可以通
过使用微软IDE自带的命令aspnet_regiis.exe将配置文件web.config中指定的标签进行加密,如果以后想查看加密后的连接字符
串,我们还可以使用aspnet_regiis.exe将加密后的字符串进行解密。

1. 加密通用语法
加密一个特定网站的web.config文件的通用形式
aspnet_regiis.exe -pef secion physical_directory -prov provider

aspnet_regiis.exe -pe secion -app virtual_directory -prov provider
其中,各个参数的含义如下:

section表示要加密的配置节

physical_directory用于指定站点的物理路径。

virtual_directory用户指定虚拟路径。

provider指定加密提供程序。

加密一个特定站点的连接字符串就是:
aspnet_regiis.exe -pef "connectionStrings" "你的web项目路径" -prov ""
其中是Windows数据保护API(DPAPI)提供程序,它使用Windows内置的密码学技术来加解密配置节。默认情况下,这个提供程序使用本机的密钥。

2. 加密方法

运行Visual Studio 2008命令提示

加密后的结果

<connectionStrings configProtectionProvider="">
<EncryptedData>
<CipherData> <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAy1WyvzomB0WAlqYo++bAce//lsg/so66+//LD9H9WQ9uF3t/0MoMI9tbrWdFJ1Yu5/e3PAV4RCbCvDlPD0VC7hxtDMqfRjQ+1OhTdk2woiSNpx0TzXwZE25o4vlXq/+lZtAj8lzf2bK+/L0+6bizStRZ7BDnOngV//CVDQ==</CipherValue>
</CipherData>
</EncryptedData>
lt;/connectionStrings>

3. 解密
解密该连接字符串也很简单
aspnet_regiis.exe -pdf "connectionStrings" '你的web项目路径"

解密后的结果:

<connectionStrings>
<add name="Sql" connectionString="Data Source=.;Initial Catalog=MySchool;Integrated Security=True" />
</connectionStrings>

4. 后台代码读取配置文件web.config中数据库连接字符串的方法:

using System.Configuation;

protected void Page_Load(object sender, EventArgs e)
{
lblMessage.Text = ConfigurationManager.ConnectionStrings["Sql"].ToString();
}


5. 在连接字符串的加密和解密的过程中,需要注意一下几点。

使用加密的连接字符串

使用加密的连接字符串不需要编码解密,ASP.NET会自动对加密内容进行解密。

加密和解密在同一台计算机上使用

在加密过程中,使用了一个基于本机的密钥。这就意味着加密和解密必须在同一台计算机上进行,否则将不能解密。同时,在一台计算机上加密的配置,在另一台计算机上将不能正常使用。

中文路径问题
该命令对中文支持不是很好。如果站点的路径中有中文字符,也许不能正常加解密。

‘玖’ 在Web.config里怎么配置数据库连接池

<connectionStrings>
<add name="sqlConnection" connectionString="Data Source=服务器名;
Initial Catalog=数据库名;Persist Security Info=True;User ID=账号; Password=密
码" providerName="System.Data.SqlClient"/>
</connectionStrings>

‘拾’ 在web.config连接数据库怎么用

1.
appSettings
<appSettings>
<add
key="conn"
value="server=服务器名;database=数据库名;uid=用户名;password=密码;"/>
</appSettings>
2.
connectionStrings
<connectionStrings>
<add
name="conn"
connectionString="Dserver=服务器名;database=数据库名;uid=用户名;password=密码"
providerName="System.Data.SqlClient"
/>
</connectionStrings>
(1)
appSettings
是在
2003
中常用的,connectionStrings
是在
2005
中常用的;
(2)
使用
connectionStrings
的好处:
第一,可将连接字符串加密,使用MS的一个加密工具即可;
第二,可直接绑定数据源控件,而不必写代码读出来再赋值给控件;
第三,可方便的更换数据库平台,如换为
Oracle
数据库,只需要修改
providerName。
(3)
写在
appSettings
中用
System.Configuration.ConfigurationManager.AppSettings["keyname"]
获取数据库连接代码值;写在
connectionStrings
中用
System.Configuration.ConfigurationManager.ConnectionStrings["name"]
获取数据库连接代码值。