文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 招聘 专题 新闻
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» Windows » 如何使用 SQL Server、IIS 和 ASP.NET 在运用程序和数据之间设置适当的信任级别?       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: 如何使用 SQL Server、IIS 和 ASP.NET 在运用程序和数据之间设置适当的信任级别?  ( 查看:227  回复:1 )   
 该主题悬赏的20无忧币已被全部领完 
 
蓝月亮
技术员  点击可查看详细


帖子 170
精华 0
无忧币 443
积分 365
阅读权限 30
注册日期 2005-11-29
最后登录 2008-6-26 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-3-18 16:40   标题:如何使用 SQL Server、IIS 和 ASP.NET 在运用程序和数据之间设置适当的信任级别?
上一帖 |
如何使用 SQL Server、IIS 和 ASP.NET 在运用程序和数据之间设置适当的信任级别?



【专家门诊】Linux网络管理实战解疑
2008-3-18 16:401楼
[ 顶部 ]
 
流星碎片
新新人类  点击可查看详细



帖子 34
精华 0
无忧币 124
积分 75
阅读权限 20
注册日期 2005-11-29
最后登录 2008-6-26 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-3-18 16:44  该回复被 蓝月亮 奖励 20 点无忧币
此回复于2008-03-31 08:01被 cy0557 评为最佳答案51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水2F0nfgvT
51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水Z$Z|(Cg5Hn/O/cA.p5\
51CTO技术论坛U3|^)rp
SQL Server、Internet 信息服务器和 ASP.NET 引擎都提供了坚实可靠的安全模型,它们可以很好地在一起协同工作。为了保证用户数据和应用程序的安全,Microsoft 还为每项服务的默认设置设置了相当低的值。 大多数开发人员面临的挑战是如何使用 SQL Server、IIS 和 ASP.NET 在运用程序和数据之间设置适当的信任级别,而不会留下可被他人轻易攻入的安全漏洞。由于涉及三类服务(SQL Server、IIS 和 ASP.NET),所以需要采取三个关键的步骤来确保解决方案的安全。本部分讨论一种为 Web 应用程序设置足够权限和信赖级别的更常用(且可靠)的方法。
r7B g
WP        PTB(Z/V51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水
51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水]
S!DD%h6Nk0D J

  定义 DotNetKB 自定义 IIS 用户帐户 51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水@cJk7Nq0EV#v3?

D6j.u~l^%XUbbs.51cto.com  保证 Web 运用程序安全性的最安全的方法是定义一个权限有限的自定义用户,然后对 IIS 进行配置,使之能够在执行您的 Web 运用程序时能作为自定义用户运行。这是相当容易实现的,可以确保访问您的 Web 运用程序的每个访问者都只具有您希望他们具有的权限。   51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水5p4o(W I]dr

+uSW0S/}:t7p)H51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水  第一步是生成一个新的 Windows 用户(本例中称为 DotNetKB),为其设置一个增强型密码,然后将其添加到 Windows 来宾组 (Guest Windows Group) 中。同时,确保选中 Password never expires(密码永不过期)和 User cannot change password(用户不能更改密码)复选框。这样将生成一个权限有限的用户,在 IIS 中运行您的 Web 运用程序时,您可以将其用作标识.
;Ib}(QGIn ^9xM51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水bbs.51cto.com+s0K        {"^c\h7E,_ Ge&q$q
然后,调用 Internet 信息服务器管理员并选择承载这些网页的 Web 应用程序。在本例中,您可以选择承载前文所生成的测试页的 Web 应用程序 (DotNetKB_WebSite)。在树视图中的 Web 应用程序上单击鼠标右键,然后从上下文相干菜单中选择 Properties...(属性...)。然后选择 Directory Security(目录安全性)并单击该对话框 Anonymous access and authentication control(匿名访问和验证操纵)部分中的 Edit(编撰)按钮。最后,输入自定义用户名 (DotNetKB),取消选择 Allow IIS to control password(允许 IIS 控制密码)复选框,并输入该自定义用户帐户的密码。完成所有这些工作之后,单击 OK(确定)按钮,将这些更改保存到 IIS 配置数据库中51CTO技术论坛*hLL x7C}H8M(RD3K

`3M&eT'Q$BS此时,IIS 将在一个权限有限的自定义帐户下运行。任何访问者访问您应用程序的网页时,都将以这个自定义用户身份运行,且只具有该自定义用户的验证权限。 51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水,~!Ebmt]S
51CTO技术论坛I,L:z)od0@K
  授权 DotNetKB 用户帐户访问 SQL Server bbs.51cto.com+B6_pjHk5~9j:R
51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水rK*F$F
J7v"MoD

  然后,您须要为该自定义用户授予访问数据库 (DotNetKB) 的相应权限。为此,您可以使用 Microsoft SQL Server 企业管理器或编写一个自定义脚本,以创建一个这样的用户并授予其访问特定对象的权限。本文介绍如何使用 SQL Server 企业管理器完成此操作。
i.NZ
O1JG0v~5m51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水
51CTO技术论坛z.drEex#\.A
  注意:尽管 Visual Studio .NET 2003 具有与 SQL Server 兼容的许多强大的集成功能,但也不允许从 Visual Studio .NET 2003 中轻松管理用户和用户权限。在大型的组织和团队中,这些高级任务通常由数据库管理员完成。   因而,启动 SQL Server 企业管理器之后,您可以按照以下步骤将自定义用户 (DotNetKB) 添加数据库中。 bbs.51cto.com6sF        Q7_,D
Xr7c?


2g        O|@u"uS,Eq~  ·在左侧的树视图中,展开节点以显示 DotNetKB 数据库。在我的电脑上,树视图的结构如下:Console Root   SQL Server Group   (LOCAL) (Windows NT)   Databases   DotNetKB。
0`*\b"X        k6E%_i%t!j T.S5Dn        O
  ·然后,在数据库下的 Users(用户)节点上单击鼠标右键,并选择 New Database User...(新建数据库用户...)。显示 Database User Properties - New User(数据库用户属性 - 新建用户)对话框时,从 Login name(登录名)下拉框中选择 (<新建>)。 bbs.51cto.comH3F-FIg(Cp

ZY@&N)_2qhr.nwbbs.51cto.com  ·显示 SQL Server Login Properties - New Login(SQL Server 登录属性 - 新建登录)对话框时,选择 General(成规)选项卡,并在 Name(名称)输入框中输入 DotNetKB。确保选中 Windows Authentication(Windows 验证)单选按钮,并从 Domain(域)下拉框中选择自定义用户帐户所在的计算机的名称。然后从 Database(数据库)下拉框中选择 DotNetKB。 51CTO技术论坛"S;d/?8\N

2_H'mK}~Xbbs.51cto.com  ·现在,选择 Databases(数据库)选项卡,在对话框顶部的列表中找到 DotNetKB 数据库并选中它。然后,确保选中对话框底部列表中的 public(公共)角色。最后,单击对话框底部的 OK(确定)按钮,保存您的更改。51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水        `,b5n,v/{P

"N"uI xp#l7Z"OL
E
然后,您须要为 DotNetKB 数据库中的所有存储过程和自定义函数添加执行权限。为此,您只需为 public(公共)角色授予权限。您可以将权限授予 DotNetKB 用户,这样将使以后的登录(当这些用户获得访问 DotNetKB 的权限时)更容易执行存储过程,而不需要为每个用户添加新的权限。    1cZOi|

2N-aO ^b6p2\9Jg4V  下面是为 DotNetKB 数据库中的存储过程和函数授予执行权限的步骤:

p;C)Go5?hh {
51CTO技术论坛"@*h8xp4T!j9z;~
  ·突出显示树视图中 DotNetKB 数据库下的 Users(用户)节点,以显示此数据库的用户列表。找到 DotNetKB 用户并在其上双击,打开 Database Users Properties(数据库用户属性)对话框。
1~;_yG?51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水)w^'S"wEL.|h
  ·突出显示(选中)public(公共)角色时,单击 Properties...(属性...)按钮,打开 Database Role Properties(数据库角色属性)对话框。然后单击 Permissions...(权限...)按钮,显示数据库对象和权限设置列表。 bbs.51cto.comMm"z)lM1F
51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水1R%M*~J1`
kh

  ·选中对话框顶部 Database role(数据库角色)下拉列表中的 public(公共)角色之后,找到为此数据库定义的所有存储过程和自定义函数(可能需要展开对话框才干看到全名),并确保选中各项旁边的 EXECUTE(执行)复选框。您可能会发现某些系统对象的其他一些复选框也被选中了,请不要更改这些选项。
zU2c|rxa51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水51CTO技术论坛Fj i;`$~AZm)_o
  ·最后,设置所有的 EXECUTE(执行)权限后,单击 OK(确定)按钮,保存更改并关闭对话框。依次单击 OK(确定)按钮,直到所有对话框均被关闭。
C*_0~!M%Y4a
oR51CTO技术论坛

        M"Y%}V/H3vS51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水  至此,您已为 IIS 建立了自定义用户,并设置了该用户在 SQL Server 中的相应权限。现在,您须要在 ASP.NET Web 项目中进行一个配置更改,确保 ASP.NET 使用同一个用户帐户执行对 SQL Server 的所有调用。
e        Ze
]c}$C51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水
51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水p8gl}6`#C@?
  设置您的 ASP.NET 应用程序以模拟 DotNetKB 用户 zYP(a3zxe

/t`1U[T6^(@3h  为 IIS 下运行的 ASP.NET Web 应用程序生成坚实可靠的配置的最后一个步骤是:配置 ASP.NET Web 运用程序,使之能够接受来自 IIS 的 Windows 用户标识并能用于访问其他操作系统资源。为此,您只需在 web.config 根文件中输入一行代码。
J
a        N,H3\1O51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水

gg4lxAqvU  修改后的 web.config 文件如下所示:
{` ].n;?D-G51CTO技术论坛$y
Z;d#STks7e*o

   51CTO技术论坛x        z7`W$z$e;QSm
bbs.51cto.comb6N6UZ'YOzR
   bbs.51cto.com#GIV*rgo\Q'q
51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水I:|r
]l

   ... 其他要素 ... 51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水.LCR;`_ x"v W
'M ^)s a(S i
  
Ou-c{H[
f/qZ{.ms   ... 其他要素 ...
bbZA4[jm
d9mS.v'os   bbs.51cto.comi^q0x~3r&m9T

*A!w+o kW51CTO|计算机|网络|信息|技术|安全|路由器|网管|Windows|Vista|数据库|网站|开发|下载|灌水   j9P\yC+I-q
51CTO技术论坛O7l xa7?k4k
  请注意,您只需添加 元素并将模拟特征设置为 true(真)。不必输入用户帐户或密码,因为这些信息将由 IIS 提供。也就是说,纵然其别人能够读取您的配置文件,他们也无法确定使用哪些标志凭据来执行您的 Web 应用程序。 bbs.51cto.com7U!xnX        mD
)C:Gw"NS
  至此,您已生成了自定义用户,并为其设置了访问 SQL Server 和 IIS 的相应权限。



网络工程师到底该不该去考CCIE认证?
2008-3-18 16:442楼
[ 顶部 ]
     
论坛跳转:  

| | |

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号