快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
“connectionStrings”);physical_directory 为web应用程序根节 点的完整物理路径;provider是用到的protected configuration provider的名 称(比如“DataProtectionConfigurationProvider”). 另外,如果你 将web应用程序在IIS里进行了注册了的话,你就可以用相当路径来代替绝对路径 :

aspnet_regiis.exe -pe section -app virtual_directory -prov provider

下面为使用aspnet_regiis.exe的例子,它用DPAPI provider, 机器级密匙,对<connectionStrings>节点进行加密:

aspnet_regiis.exe -pef
"connectionStrings" "C:\Websites\ASPNET_Data_Tutorial_73_CS"
-prov "DataProtectionConfigurationProvider"

类似的,该 aspnet_regiis.exe命令行工具也可以用来解密配置节点,不过我们要将-pef替换 成-pdf或-pd。当然,解密时不需要指定provider名 称.

aspnet_regiis.exe -pdf section physical_directory
 -- or --
aspnet_regiis.exe -pd section -app virtual_directory

注意:

由于我们使用的是DPAPI provider,它使用的密匙是又电脑指定的,所以你必须在存储web页面的同一台电 脑上运行aspnet_regiis.exe工具. 比如,你在本地电脑上运行这个命令行,然后 又将加了密的连接字符串上载到另一个服务器上,该服务器就无法对其进行解密 ,因为加密的密匙是在本地电脑上指定的.如果是使用RSA provider的话就不存在 这种局限性,因为RSA provider可以将密匙(RSA keys)传递给另一台电 脑.

理解Database Authentication Options

在任何应用程序向 Microsoft SQL Server数据库发出SELECT,INSERT,UPDATE,或DELETE请求之前,数 据库首先要确定请求者的身份.该过程可分为2种验证模式:authentication 和 SQL Server provides:

.Windows Authentication:在Visual Studio 2005的ASP.NET Development Server里运行一个ASP.NET应用程序时,ASP.NET应用程序假定身份(identity)为当前登录用户。而如果运行在Microsoft Internet Information Server (IIS)上的话,ASP.NET应用程序假定身份(identity)为domainName\MachineName or domainName\NETWORK SERVICE,,虽然这些都可以用户定制.

.SQL Authentication:验证的时候需要提供用户ID和password,使 用SQL authentication的话,可以由连接字符串来提供ID和password.

一 般使用Windows authentication模式,因为其更安全.在Windows authentication 模式下,连接字符串不需要用户名和密码,并且如果web服务器和数据库服务器分 属不同的电脑的话,(credentials)认证在网络间传输时并不以纯文本格式传输. 而如果是SQL authentication模式的话,将对连接字符串进行硬编码,且认证在 web服务器和数据库服务器之间以纯文本格式进行传输.

本教程使用的是 Windows authentication.我们可以通过连接字符串来查看到底使用的是哪种认证 。本教程的Web.config文件的连接字符串如下:

Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\NORTHWND.MDF; Integrated Security=True; User Instance=True

术语 “Integrated Security=True”,以及缺少用户名和密码都表明我们 使用的是Windows authentication模式。不过在一些连接字符串里用术语 “Trusted Connection=Yes” 或 “Integrated Security=SSPI”来替换“Integrated Security=True”, 不过 它们都表明使用的是Windows authentication.

下面的代码显示使用的是 SQL authentication:

Server=serverName; Database=Northwind; uid=userID; pwd=password

假想某个攻击者可以查看你的应用程序的 Web.config文件。如果你使用的是SQL aut

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号