【问题标题】:ASP.NET/IIS7 - Securing access to SQL Server for multiple user rolesASP.NET/IIS7 - 保护多个用户角色对 SQL Server 的访问
【发布时间】:2010-08-16 06:36:01
【问题描述】:

我正在开发一个使用 ASP.NET 4.0、C# 和 IIS7 的 Web 应用程序。 Web 应用程序是一个内容管理系统,它定义了多个用户角色,例如编辑者和管理员。这些用户和角色由 asp.net 成员框架管理,相关的数据库表使用 aspnet_regsql 集成到 Web 应用程序的数据库中。最后,Web 应用程序在 ApplicationPoolIdentity 下运行。因此,Web 应用程序在不与任何其他应用程序共享的虚拟帐户“IIS AppPool\”下运行。

该网站的设计使用户帐户由管理员分发(没有公共注册页面),尽管此细节可能无关紧要。在任何情况下,管理员都应该有权创建和删除用户以及编辑站点上的任何内容。另一方面,编辑应该能够只编辑网站的指定部分。最后,网站的匿名访问者应该只能查看内容,没有编辑选项。

问题是:仅将 SQL Server 数据库中的读写访问权限授予 IIS AppPool\ 虚拟帐户并为 Web 应用程序的底层业务逻辑中的不同用户角色授予功能是否不安全?

我不这么认为,但由于数据完整性的必要性,我认为征求其他开发人员的意见可能是个好主意。

如果(且仅当)这确实会带来不可预见的安全风险,那么使用模拟、使用 SQL 身份验证在 web.config 文件中存储多个连接字符串或在数据库本身中跟踪用户权限会更好吗?

【问题讨论】:

    标签: asp.net database security web-applications iis-7


    【解决方案1】:

    问题是:会不会不安全 只授予读写权限 MSSQL 数据库到 IIS AppPool\ 虚拟帐户并提供功能 到不同的用户角色 Web 的底层业务逻辑 申请?

    这就是通常的做法,对于大多数业务案例来说,这已经足够了。每个应用程序都存在不安全因素,因此您必须尽最大努力避免缓冲区溢出、脚本注入和 SQL 注入、清除输入等。

    如果(且仅当)这确实构成了 不可预见的安全风险,会不会 使用模拟的更好主意, 存储多个连接字符串 带有 SQL 的 web.config 文件 身份验证或跟踪用户 数据库本身的权限?

    使用模拟并不少见,如果您使用的是 Windows 身份验证,则非常容易。这是一个令人头疼的管理问题,因为除了应用程序数据库之外,还必须通过数据库安全性添加用户。多个连接字符串可能是这些方法中可扩展性最低且最有利的方法,更不用说它会损害繁忙站点的性能。

    【讨论】:

      猜你喜欢
      • 2010-09-29
      • 2013-11-06
      • 1970-01-01
      • 2012-10-25
      • 2014-07-16
      • 2016-10-02
      • 2010-11-12
      • 2011-02-17
      • 2021-10-19
      相关资源
      最近更新 更多