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

时间:2013-01-16 06:58:47

标签: web-applications architecture language-agnostic system-design

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

该应用程序分为两个区域 - 一个仅限员工的门户网站,用于Intranet,以及一个供客户访问的公共门户网站。

我创建这个没有问题,但我不确定如何进行托管。安全是我最关心的问题。鉴于我们的数据库将托管敏感信息(您可以确定我将加密和散列所有重要的东西以及所有常见的XSS / CSRF / SQL注入)

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

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

2 个答案:

答案 0 :(得分:1)

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

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

数据库应位于第三台计算机上,可供两台门户计算机访问,但同样需要严重防火墙,以防止在没有门户网站代码的情况下尝试访问数据库。

答案 1 :(得分:0)

1.根据顾虑提供您的申请

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

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