【发布时间】: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