【问题标题】:Web Database or SOAP?Web 数据库还是 SOAP?
【发布时间】:2009-07-10 15:25:41
【问题描述】:

我们有一个后台 CRM 应用程序,它公开了公共 ASP.NET 站点中的一些数据。目前,ASP.NET 站点位于后台数据库(我们称之为 Web 数据库)的单独缩减版本之上。每日同步例程使数据库保持最新(托管在后台)。问题是同步逻辑非常复杂且更改耗时。我想知道使用 SOAP 服务是否可以简单地处理事情? ASP.NET 网页将调用 SOAP 服务,该服务将执行数据库调用。不需要单独的 Web 数据库或同步例程。我对 SOAP 方法的主要关注是安全性,因为 SOAP 服务会暴露在互联网上。

我们应该坚持我们当前的架构吗?还是 SOAP 方法会有所改进?

【问题讨论】:

  • 我无法想象 SOAP 可以简化任何事情。
  • 需要澄清的一点:同步是双向的吗?还是总是从后台数据库到网络数据库?
  • 同步是2路。出于安全原因,同步过程托管在后台,它从 Web 数据库中提取和推送数据。 Web 数据库看不到后台数据库。此外,网络数据库中的数据是加密的——同样是为了安全。

标签: asp.net sql-server soap


【解决方案1】:

简短的回答是肯定的,Web 服务调用会更好,并且不需要同步。

长答案是,您需要了解在 Web 服务方面可用的技术。我强烈建议您查看WCF,它可以让您完全按照自己的意愿去做,而且您只能将您的服务公开给 ASP.NET Web 服务器,而不是整个互联网。

【讨论】:

  • 如果网络服务器被入侵会怎样?只要设置设计正确,LAN 和 LAN 数据库仍然受到保护,因为 DMZ 服务器和 LAN 服务器之间存在(或应该存在)二级防火墙。如果您使用 SOAP 方法公开 LAN 数据库,则不再是这种情况,并且需要正确设计和锁定 SOAP 方法以防止异常频繁和/或危险的请求。
  • 如果 Web 服务器被入侵,那么 SOAP 调用将是您最不必担心的问题。
  • 视情况而定。 DMZ 和 LAN 网络被(或应该)由另一个防火墙隔离,数据只允许从 LAN 推送到 DMZ。这意味着即使防火墙被攻破,我也无法发送和创建从 DMZ Web 服务器到 LAN 的连接。正确配置的防火墙应该可以防止这种情况发生,并在很大程度上保护 LAN DBMS 免受外部影响。但是,一旦您公开了 SOAP 方法并允许请求通过,您实际上是在允许外部世界影响 LAN DBMS。
  • 抱歉,我的意思是“……这意味着即使 DMZ 网络服务器被入侵……”而不是“……防火墙被入侵……”。
  • 我猜这就是为什么最安全的电脑是不插电的 :)
【解决方案2】:

不会有安全问题。只需使用其中一种安全绑定,例如 wsHttpBinding。

【讨论】:

    【解决方案3】:

    我会考虑让 Web 数据库构建过程更易于维护

    由于安全性显然是一个问题,这意味着您需要添加逻辑来限制数据和请求的类型,并且该逻辑必须存在于某个地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-09
      相关资源
      最近更新 更多