IIS、ASP.NET和SQLServer的安全性问题

IIS、ASP.NET和SQLServer的安全性问题,第1张

IIS、ASP.NET和SQLServer的安全性问题,第2张

SQL Server、Internet information server和ASP.NET引擎都提供了坚实可靠的安全模型,它们可以很好地协同工作。为了保证用户数据和应用的安全,微软还为每个服务的默认设置设置了一个相当低的值。大多数开发人员面临的挑战是如何使用SQL Server、IIS和ASP.NET在应用程序和数据之间设置适当的信任级别,而不留下容易被他人侵入的安全漏洞。因为涉及到三种类型的服务(SQL Server、IIS和ASP。NET),需要采取三个关键步骤来确保解决方案的安全性。本节讨论一种更常见(也更可靠)的方法,为Web应用程序设置足够的权限和信任级别。

定义DotNetKB自定义IIS用户帐户

确保Web应用程序安全的最安全的方法是定义一个具有有限权限的自定义用户,然后配置IIS,以便它在执行Web应用程序时可以作为自定义用户运行。这很容易实现,并且可以确保访问您的Web应用程序的每个访问者只拥有您希望他们拥有的权限。

第一步是生成一个新的Windows用户(在本例中称为DotNetKB),为其设置一个增强的密码,然后将其添加到Windows Guest组。同时,确保选中了“密码永不过期”和“用户不能更改密码”复选框。这将生成一个具有有限权限的用户,当您在IIS中运行Web应用程序时,可以将该用户用作标识。

然后,给Internet information server管理员打电话,选择承载这些网页的Web应用程序。在这个例子中,您可以选择Web应用程序(DotNetKB_WebSite ),它托管前面生成的测试页面。右键单击树视图中的Web应用程序,然后选择属性...从上下文菜单中。然后选择目录安全性,并单击对话框的匿名访问和身份验证控制部分中的编辑按钮。最后,输入自定义用户名(DotNetKB),取消选中“允许IIS控制密码”复选框,并输入该自定义用户帐户的密码。完成所有这些任务后,单击“确定”将这些更改保存到IIS配置数据库
。此时,IIS将在具有有限权限的自定义帐户下运行。任何访问您的应用程序网页的访问者都将以该自定义用户的身份运行,并且只拥有该自定义用户的身份验证权限。

授权DotNetKB用户帐户访问SQL Server

然后,您需要授予定制用户访问数据库的适当权限(DotNetKB)。为此,您可以使用Microsoft SQL Server企业管理器或编写自定义脚本来创建这样的用户,并授予他访问特定对象的权限。本文介绍如何使用SQL Server企业管理器来实现这一点。

注意:虽然Visual Studio。NET 2003具有许多与SQL Server兼容的强大集成功能,但它不允许从Visual Studio轻松管理用户和用户权限。NET 2003。在大型组织和团队中,这些高级任务通常由数据库管理员完成。因此,启动SQL Server企业管理器后,可以按照下列步骤将自定义用户(DotNetKB)添加到数据库中。

在左侧的树视图中,展开节点以显示DotNetKB数据库。在我的计算机上,树视图的结构如下:控制台根SQL server组(本地)(Windows NT)数据库. net KB。

然后,在数据库下的用户节点上单击鼠标右键,并选择新建数据库用户…当显示数据库用户属性-新用户对话框时,从登录名下拉框中选择()。

当显示“SQL server登录属性-新登录”对话框时,选择“常规”选项卡,并在“名称”输入框中输入DotNetKB。确保选择了Windows身份验证(Windows按钮,并从域下拉框中选择自定义用户帐户所在的计算机的名称。然后从数据库的下拉框中选择DotNetKB。

现在,选择Databases选项卡,在对话框顶部的列表中找到DotNetKB数据库并选择它。然后,确保对话框底部列表中的public角色被选中。最后,单击对话框底部的OK按钮保存更改。

然后,您需要为DotNetKB数据库中的所有存储过程和自定义函数添加执行权限。为此,您只需向public角色授予权限。您可以向DotNetKB用户授予权限,这将使将来的登录(当这些用户获得对DotNetKB的访问权时)更容易执行存储过程,而无需为每个用户添加新的权限。

以下是向DotNetKB数据库中的存储过程和函数授予执行权限的步骤:

在树视图中突出显示DotNetKB数据库下的用户节点,以显示该数据库的用户列表。找到DotNetKB用户,双击它以打开数据库用户属性对话框。

当公共角色突出显示(选中)时,单击属性...按钮打开“数据库角色属性”对话框。然后单击权限...按钮显示数据库对象和权限设置的列表。

在对话框顶部的“数据库角色”下拉列表中选择public角色后,找到为此数据库定义的所有存储过程和自定义函数(您可能需要展开对话框以查看完整名称),并确保选中每个项目旁边的“执行”复选框。您可能会发现一些系统对象的其他复选框也被选中。请不要更改这些选项。

最后,设置所有执行权限后,单击确定保存更改并关闭对话框。依次单击确定按钮,直到所有对话框都关闭。

到目前为止,您已经为IIS创建了一个自定义用户,并在SQL Server中设置了该用户的相应权限。现在,您需要在ASP.NET Web项目中进行配置更改,以确保ASP.NET使用相同的用户帐户对SQL Server进行所有调用。

设置您的ASP.NET应用程序来模拟DotNetKB用户。

为在IIS下运行的ASP.NET Web应用程序生成可靠配置的最后一步是配置ASP.NET Web应用程序,以便它可以接受来自IIS的Windows用户id,并可用于访问其他操作系统资源。为此,您只需在web.config根文件中输入一行代码。

修改后的web.config文件如下所示:


...其他元素...

...其他元素。...

请注意,您只需要添加元素并将simulation属性设置为true。没有必要输入用户帐户或密码,因为这些信息将由IIS提供。也就是说,即使其他人可以读取您的配置文件,他们也不能确定使用哪个身份凭证来执行您的Web应用程序。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » IIS、ASP.NET和SQLServer的安全性问题

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情