【问题标题】:Building an application for internal and external use - how do I structure them?构建供内部和外部使用的应用程序 - 我如何构建它们?
【发布时间】:2013-01-16 19:59:50
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    数据库应该在第三台机器上,两台门户机器都可以访问,但同样,它有严密的防火墙以防止尝试在没有门户代码的情况下访问数据库。

    【讨论】:

    • 我正在考虑将数据库托管在公司防火墙内的另一台机器上 - 在物理上与员工 Intranet 不同的机器上,并通过 HTTPS 使用 Web 服务或 API 来提供对数据库的有限访问- 这是你的想法吗?
    • 是的,这是个好主意。大多数人并没有走那么远,他们只是允许数据库的本机访问协议并将 SQL 流过它。但绝对是,如果可以的话,您对风险系统(公共门户)的操作限制得越多,您的情况就会越好。
    【解决方案2】:

    1.根据关注点划分您的应用程序

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-03
      • 2010-09-15
      • 2011-01-28
      • 2019-04-26
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      相关资源
      最近更新 更多