想象一下使用分层架构设计的.NET应用程序。
在将应用程序的所有层部署到同一台计算机时,是否可以使用类似trusted subsystem模式的模式?
这种设计在默认情况下是不安全的吗?
发布于 2008-12-07 18:30:03
这取决于您如何使用系统以及如何部署您的层。
假设您有一台计算机,其中SQL Server在一个用户帐户下运行,您的服务层在另一个服务帐户下,而您的用户使用第三个帐户登录(当然,没有管理员访问权限)。假设中间层帐户被信任可以访问数据库,但没有用户帐户。在这种情况下,是的,这基本上就是您对受信任子系统模型的经典描述。
但是,如果您遇到了最终用户帐户可以访问数据库和服务层的情况,那么您实际上是在打破模式并打开一个漏洞。如果最终用户是管理员,并且可以以某种方式篡改其中一个层,那么您就打破了这种模式。如果用户对机器有物理访问权限,并且可以篡改机器,我甚至认为您正在打破模式……
发布于 2008-12-07 18:14:08
如果所有层都部署在相同的进程中,那么根据定义,您几乎没有使用受信任的子系统模型。
您可以(至少在理论上)将不同的层部署到同一台物理机,同时仍然使用受信任的子系统模型,但当然更难保证中间层的安全性。例如,您的中间层可以是在IIS下运行的受信任的web服务。
https://stackoverflow.com/questions/347719
复制相似问题