Web applications 构建用于内部和外部使用的应用程序-如何构建它们?

Web applications 构建用于内部和外部使用的应用程序-如何构建它们?,web-applications,architecture,language-agnostic,system-design,Web Applications,Architecture,Language Agnostic,System Design,我正在致力于将我们公司的各种信息系统整合到一个基于web的应用程序中。这不是一个小壮举,但随着时间的推移,我们将逐步推广和改进它 该应用程序分为两个区域:一个是内部网的员工专用门户,另一个是供客户访问的公共门户 我没有问题创建这个,但我不知道如何去托管它。安全是我最大的担忧。考虑到我们的数据库将承载敏感信息(您可以肯定,我将加密和散列所有重要内容以及所有常见的XSS/CSRF/SQL注入) 我是否在同一台服务器上同时运行应用程序和数据库?我是否在内部运行内部的东西以保证安全,并让公共系统通过We

我正在致力于将我们公司的各种信息系统整合到一个基于web的应用程序中。这不是一个小壮举,但随着时间的推移,我们将逐步推广和改进它

该应用程序分为两个区域:一个是内部网的员工专用门户,另一个是供客户访问的公共门户

我没有问题创建这个,但我不知道如何去托管它。安全是我最大的担忧。考虑到我们的数据库将承载敏感信息(您可以肯定,我将加密和散列所有重要内容以及所有常见的XSS/CSRF/SQL注入)

我是否在同一台服务器上同时运行应用程序和数据库?我是否在内部运行内部的东西以保证安全,并让公共系统通过Web API进行调用


在这种情况下,可维护性、安全性和性能之间的最佳平衡是什么?

1.根据关注点设计应用程序

2.使应用程序尽可能独立


3.为所有应用程序提供接口,实施访问管理系统,并根据您的组织决策提供访问公共/私人(这将从长远来看有所帮助)

这样的系统通常具有复杂的设置。员工门户应位于公司网络内的计算机上,且不应从公共网络访问

当然,公共门户必须位于可以从公共网络访问的计算机上。机器应该关闭您不需要的所有设备,并且应该有一个外部防火墙阻止您不使用的网络端口-假设有人试图闯入机器,并为他们提供尽可能少的尝试路径。此计算机将需要对数据库进行网络访问,但访问路径也应严格限制,以防止成功的攻击者进入您的安全网络


该数据库应位于第三台计算机上,可供两台门户计算机访问,但同样,应设置大量防火墙,以防止在没有门户代码的情况下尝试访问该数据库。

我正在考虑将该数据库托管在公司防火墙内的另一台计算机上,即位于员工内部网的物理上不同的计算机上,通过HTTPS使用Web服务或API来提供对数据库的有限访问—这就是您的想法吗?是的,这是个好主意。大多数人并没有走那么远,他们只允许数据库使用本机访问协议,并在数据库上传输SQL。但是,如果可以的话,你越是限制有风险系统(公共门户)的行为,你的境况就越好。