快速业务通道

ASP.NET 2.0数据教程之七十三:保护连接字符串及其它设置信息

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21

返回“ASP.NET 2.0数据教程目录”

导言:

ASP.NET应用程序的设置信息通常都存储在一个名为Web.config 的XML文件里。在教程的前面部分我们已经好几次修改过Web.config文件了.比如 在第一章,我们创建名为Northwind的数据集时,数据库连接字符串信息自动的添 加到Web.config文件的<connectionStrings>节点.再后来,在第3章里,我 们手动更新了Web.config文件,添加了一个<pages>元素,对所有的 ASP.NET页面运用DataWebControls主题.

由于Web.config文件包含了敏感 的信息,比如连接字符串.所以确保Web.config文件内容的安全性是很重要的,对 未经授权的访问者应隐藏这些敏感信息.默认情况下,对.config后缀名的文件的 任何HTTP请求都由ASP.NET引擎来处理,它将返回“This type of page is not served”的信息,如图1所示.这意味着访问者无法通过在其浏览器的地 址栏键入‘http://www.YourServer.com/Web.config’来访问你的 Web.config文件.

ASP.NET 2.0数据教程之七十三:保护连接字符串及其它设置信息

图1:通过浏览器访问Web.config将返回“This type of page is not served”的信息

但是如果某个攻击者找到其它方法来访问你的 Web.config文件的内容又怎么办呢?他会做怎样的修改?我们又采取怎样的步骤 来保护Web.config文件的这些信息呢?幸运的是,Web.config文件的绝大多数节 点并不包含敏感信息.如果攻击者知道你的ASP.NET页面使用的默认的主题的名字 又会搞哪些破坏呢?

Web.config文件的某些节点包含了敏感信息,比如: connection strings, user names, passwords, server names, encryption keys等等.我们能在下面的这些节点找到这些信息:

.<appSettings>
.<connectionStrings>
.<identity>
.<sessionState>

在本文我们 将考察保护这些敏感信息的技术.就像我们将看到的那样,.NET Framework 2.0版 本包含了一个保护配置系统,我们可以使用它很容易地对选定的配置节点进行加 密和解密.

注意:

在本文结尾部分,我们将看到微软对从一个 ASP.NET应用程序连接到数据库时的建议.除了对连接字符串进行加密外,我们还 可以连接到一个处于“安全模式”的数据库使你的系统更强 大.

第一步:考察ASP.NET 2.0的保护配置选项

ASP.NET 2.0包含一 个保护配置系统以对配置信息进行加密和解密.这些方法包含在.NET Framework, 可用来编程加密和解密配置信息.该保护配置系统使用provider model模式.它允 许开发者选择执行哪种加密.

.NET Framework包含了2种protected configuration providers:

.RSAProtectedConfigurationProvider :加 密和解密时使用不对称RSA运算法则(RSA algorithm)

.DPAPIProtectedConfigurationProvider:加密和解密时使用Windows Data Protection API (DPAPI)

由于保护配置系统执行的是provider design模式,因此我们可以创建自己的protected configuration provider并运 用到自己的程序里.具体过程可参阅文章《Implementing a Protected Configuration Provider》(http://msdn2.microsoft.com/en- us/library/wfc2t3az(VS.80).aspx)

RSA providers 和 DPAPI providers 在加密和解密时使用“密匙”(keys),这些“密匙”可以 存储在“机器级”(Machine-level)和“用户级”(user- level).机器级密匙在这种情况下很理想:每个web应用程序都运行在自己专有的 服务器上,或某个服务器上的多个应用程序共享同样的加密信息.而用户级密匙在 共享服务器环境里是比较理想的安全选择.此时,同服务器上的其它程序不能对你 加密的配置信息进行解密.

本教程的示例将使用DPAPI provider和机器级 密匙.具体来说,我们将对Web.config文件里的<conne

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号