我们真的需要应用服务器吗?

时间:2011-03-24 11:55:13

标签: asp.net sql-server security iis-7

我即将开始编写一个可通过互联网访问的网络应用程序(Asp.Net/IIS7)。它将被放置在接受http和https的防火墙后面。

我们要替换的先前系统不允许此Web服务器直接与数据库通信,而是让它进行高度专业化的Web服务调用(通过仅允许此类调用的新防火墙)单独的应用服务器然后转到数据库来操作数据。

我今天在许多系统上工作过,但这是第一个认真对待安全问题的系统。这是一个常见的设置吗?我的第一个想法是在Web服务器上的连接字符串中使用Windows身份验证,并让用户成为残缺的数据库用户(只能查看和更新​​自己的数据),然后允许通过内部防火墙访问数据库。

我是天真的吗?似乎如果我们使用新系统的当前设置,我将不得不做大量的数据映射。

编辑:此应用的域名是在线订购商品(企业对企业),用户(企业)登录,输入他们在任何给定时间段可以提供的内容,查看以前的交易历史记录,查看预计的商品需求等。这个系统没有交换实际的钱,但是这个系统提供了哪些商品可供销售的信息,这是输入到订购系统的数据

4 个答案:

答案 0 :(得分:4)

这种类型的安排(带有Web服务器的DMZ,通过防火墙与app服务器通信,通过防火墙与db通信)在某些类型的环境中非常常见,特别是在大型交易系统(例如在线公司银行)中

执行此操作有非常好的安全原因,主要原因是它会减慢对系统的攻击。它的传统术语是深度防御(如果你在水面的那边则是防御)

合理的安全假设:您的网络服务器将不断受到攻击

因此,您将其粘贴在DMZ中,并使用防火墙限制其可以进行的连接类型。您还将Web服务器限制为仅作为Web服务器 - 这可以减少可能的攻击次数(攻击面)

第二个合理的安全假设:在某些时候,会发现零日攻击会到达您的网络服务器并允许其受到攻击,这可能会导致对您的用户的攻击/客户数据库

所以你有一个防火墙限制了与应用服务器的连接数。

第三个合理的安全假设:将为应用服务器找到零天,但如果您修补,则同时为网络和应用服务器找到零天的几率会大大降低定期

因此,如果您的数据/交易价值足够高,添加额外的图层对保护自己至关重要。

答案 1 :(得分:1)

我们有一个类似配置的应用程序。接口层位于DMZ中的Web服务器上,DAL位于防火墙内的服务器上,Web服务弥合了它们之间的差距。与此同时,我们在防火墙内部有一个授权管理器,它公开了另一个Web服务,用于控制允许用户在应用程序中查看和执行的操作。该应用程序位于我们的主要客户数据跟踪系统之一,可供我们的内部员工和外部承包商访问。它还涉及医疗信息,因此属于HIPAA规则。因此,虽然我不认为这种设置特别常见,但这并不是闻所未闻,特别是对于高度敏感的数据或者您必须由监管机构处理审计的情况。

答案 2 :(得分:0)

任何合理可扩展,相当安全的传统Web应用程序都将使用一个或多个服务和缓存层将数据库从Web机器中抽象出来。 SQL注入是渗透/黑客攻击/破解的主要载体之一,数据库通常往往是整体架构/ TOC中更复杂,更昂贵的部分之一。使用服务层允许您将逻辑移出数据库,使用进程外缓存,保护数据库免受注入尝试等。您可以通过这种方式获得更好,更便宜,更安全的性能。它还可以在升级,冗余或维护方面提供更大的灵活性。

答案 3 :(得分:-1)

配置用户的访问权限对我来说似乎是一个更强大的解决方案。此外,您的DataAccess图层也应该内置一些安全性。添加这个额外的层可能最终会受到性能影响,但它实际上取决于您使用什么机制将数据从“WebServer1”移动到“WebServer2”。如果没有这方面的更具体的信息,就不可能给出更可靠的答案。