问:我是一个政府的博物馆里的一名志愿者,我们开发了一个数据库应用程序,当志愿者和工作人员在史密森研究所(Smithsonian Institution)的网络中工作时可以使用该应用程序。但是现在我们想让我们的注册用户能在家里访问该应用程序,这样他们就能在家里进行他们的研究。将该应用程序放置在DMZ区域中是否合适呢?如果合适的话,那么DMZ中的该应用程序是否应该为内部交互应用程序的一个只读副本?
答:你的问题中包含了两个值得关注的安全问题:该应用程序的最佳的网络位置和授权的远程用户的合适的访问级别。你没有提到任何有关于你们数据库中的数据的敏感度的信息,所以我将假设其中没有特别敏感的数据。
该应用程序放置的位置与网络的拓扑结构关系很大。如果你们的组织者使用虚拟专用网络(VPN),而且志愿者们也必须连接到VPN后才能使用该应用程序,那么应将该应用程序的Web前端程序放置在VPN终止的地方。如果这个地方在你们的内部网络中,那么将该Web前端放在那里没什么问题。
如果你不打算使用VPN连接,那么设置DMZ区域肯定是个不错的选择,因为它保证了那些从外部网络对该应用程序的访问(包括那些在没有授权的情况下想要对该应用程序的访问)都不能获得对其它应用程序或网络资源的访问权限。
赋予远程用户的访问级别应该遵循最小特权原则;只赋予他们完成工作所需的权限。如果没有业务需求需要用户在离线状态下修改数据,那么就没有必要赋予他们这些权限。在另一方面,假如他们需要读权限,有很多的例子可以使得数据库驱动的应用程序对外部用户可用。要确保你考虑到了Web应用程序的安全性,因为还有一些合适的事情需要考虑,从而共同来增强托管的应用程序的安全性。