编码web.config中的信息

我们都知道web.config可以保存连接字符串,我们在程序中也都是这么做的,web.config是XML,所以它有清晰的结构,是我们很容易可以读懂它,但是这也出现一个问题,我们数据库完全暴露给浏览该文件的人,这是我们所不希望的。我们可以使用一个简单有效的加密算法来加密这段连接字符,使直接浏览该文件的人不能清楚地看到这些信息。
我们一般以下面的形式保存连接字符串:
<appSettings>
<add key="ConnectionString" value="server=localhost;database=test;pwd=sa;uid=sa;" />
</appSettings>
为了我们自己可以看得明白这些加密的字符我们需要一个额外的程序专门生成这些加密数据(这个额外的程序你可以写得很复杂但是为了说明问题,我们使用简单的base64编码数据,这其实不是加密数据,但是原理是一样的)。我们建立一个WinForm工程,专门用来生成明文到密文的(base64)转换,如果使用其它的加密算法可以替换这个加密过程。转换按钮里面的代码如下:
private void button1_Click(object sender, System.EventArgs e) {
byte[] data = System.Text.ASCIIEncoding.ASCII.GetBytes(this.textBox1.Text);
string str = Convert.ToBase64String(data);
this.textBox2.Text = str;
}
其中textBox2里面就是变码以后的字符。我们可以将我们web.config里面的连接字符("server=localhost;database=test;pwd=sa;uid=sa;")取出来放在这个程序里面执行生成一个新的字符串(c2VydmVyPWxvY2FsaG9zdDtkYXRhYmFzZT10ZXN0O3B3ZD1zYTt1aWQ9c2E7)。
之后我们用这个字符替换未编码的字符串。如下所示:
<appSettings>
<add key="ConnectionString" value="c2VydmVyPWxvY2FsaG9zdDtkYXRhYmFzZT10ZXN0O3B3ZD1zYTt1aWQ9c2E7" />

时间: 2024-10-27 01:27:02

编码web.config中的信息的相关文章

在web.config中添加连接字符串

web|字符串|字符串 web.config中的文件如下: <?xml version="1.0" encoding="utf-8" ?><configuration><appSettings>      <add key="constring"  value="integrated security=SSPI;data source=localhost;initial catalog=教务管理

解决打不开 RSA 密钥容器 即:加密web.config中的内容

简单的解决方法: WebConfig 加解密,未能使用提供程序"RsaProtectedConfigurationProvider"进行解密.提供程序返回错误消息为: 打不开 RSA 密钥容器.问题:未添加用于访问 RSA 密钥容器命令:aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY/NETWORK SERVICE"注意事项:XP下:aspnet_regiis -pa

WEB应用中的信息泄漏以及攻击方法

本文讲的是WEB应用中的信息泄漏以及攻击方法,下面内容介绍了在web应用程序中的一些信息泄漏问题,当然也会举例分析,介绍如何发现这些信息泄漏. Banner收集/主动侦查 Banner收集或主动侦察是一种攻击类型,攻击者在此期间向他们的目标系统发送请求,以收集有关它的更多信息.如果系统配置不当,可能会泄漏自己的信息,如服务器版本,PHP或者ASP.NET版本,OpenSSH版本等. 在大多数情况下,Banner收集并不会涉及关键信息泄漏,不过可以让攻击者收集到开发过程中使用环境版本的信息.例如:

通过什么方式可以改WEB.CONFIG中FORMS中设定的用户名和密码?

问题描述 <credentialspasswordFormat="SHA1"><username="zjgqy"password="4B52917CFC87724E67FBB79C543FAE8E4AC7D9FD"/></credentials>如何实现不要在WEB.CONFIG中改.做一个修改密码的页面? 解决方案 解决方案二:顶..............................解决方案三:UP..

利用xml轻松读取web.config中的用户自定义节

虽然vs.net2.0为我们提供了 ConfigurationManager.AppSettings["..."]; ConfigurationManager.ConnectionStrings["..."]; 这样方便快捷的方法来访问web.config中的AppSettings和ConnectionStrings这二个节的内容 但对于其它节,特别是用户自定义节的访问却并不方便,比如web.config中有这么一段内容 <?xml version="

关于Web.config中控制用户访问权限的问题!

问题描述 我在Web.config中对各个用户或者角色对某个路径的设置在调试中正常,但在iis中发布中发现必须设置某种文件(如txt文件)的映射才能有效控制权限!但是实际应用中涉及的文件类型千变万化,我不可能一个个手动设置啊!请问有没有通用的方法? 解决方案 解决方案二:这样设计权限的初衷?解决方案三:可以用用户权限组做解决方案四:用户权限组具体怎么做?<?xmlversion='1.0'encoding='utf-8'?><configuration><system.web

在machine.config的&amp;amp;lt;processModel&amp;amp;gt;与在web.config中 &amp;amp;lt;identity impersonate=&amp;amp;quot;true&amp;amp;quot;&amp;amp;gt;中设置用户名密码有什么区别?

问题描述 在machine.config的<processModel>与在web.config中<identityimpersonate="true">中设置用户名密码有什么区别? 解决方案 解决方案二:最好不要在config中出现这些敏感信息的

web.config中httpRunTime的属性(转)

配置httpRuntime也可以让FileUpload上传更大的文件,不过设置太大了会因用户将大量文件传递到该服务器而导致的拒绝服务攻击(属性有说明) <httpRuntime> <httpRuntime useFullyQualifiedRedirectUrl="true|false"              maxRequestLength="size in kbytes"              executionTimeout=&quo

通过Web.config中的configSections配置自己系统的全局常量

随着系统的庞大,你的全局信息保存在appsitting里可能会比较乱,不如为模块写个自定义的全局常量吧 首先,在Web.config中的代码可能是这样   而ConfigurationSectionForSite.WebSiteInfoHandler需要我们定义成这样   最后在页面需要的位置调用,可能这样就可以了 本文转自博客园张占岭(仓储大叔)的博客,原文链接:通过Web.config中的configSections配置自己系统的全局常量,如需转载请自行联系原博主.