代码之家  ›  专栏  ›  技术社区  ›  Justin

使用Web服务保护数据库

  •  4
  • Justin  · 技术社区  · 17 年前

    有传言说我公司的团队很快将使用Web服务来开发未来的所有应用程序。建筑应该是这样的:

    应用程序-->Web服务-->数据库

    其背后所陈述的理由是安全性。这听起来像是在浪费大量的时间,如果没有什么好处的话。我的问题是,Web服务如何使您的数据比数据库更安全?我认为,如果攻击者想要获取您的所有数据,并且已经访问了应用服务器,那么了解应用程序是如何获取其数据的就相当简单了。

    请记住,这些Web服务纯粹是为了数据,几乎没有任何业务/验证逻辑,也不在应用程序开发人员的控制范围之内(至少这是它与所有以前使用过Web服务的应用程序一起工作的方式)。

    4 回复  |  直到 17 年前
        1
  •  4
  •   Tmdean    17 年前

    如果在Web服务上没有业务逻辑或验证是真的,那么添加额外的抽象层只会带来有限的安全好处。我之所以这么说是有限的,是因为应用程序和数据库之间的接口仍然比它们直接对话时更为有限。

    如果将验证和业务逻辑添加到等式中,则会有一个显著的安全好处,因为任何有权访问应用程序帐户的人都只能做应用程序能够做的事情。另外,这是一个更好的设计,因为它减少了应用程序和实现之间的耦合,这些细节说明了数据是如何存储在数据库中的。如果要更改数据库模式,只需更新Web服务,而不更新整个应用程序。

        2
  •  4
  •   Ray Lu    17 年前

    Web服务的一个重要方面是互操作性,以便以后来自不同平台的不同应用程序可以利用这些服务和数据。这样做会使贵公司受益匪浅。而且您对安全性的看法是正确的,这绝对是使用Web服务而不是公开数据库的公共端点的一个很好的理由,这是危险的!

    Web服务支持数据的可访问性,例如,可以通过JavaScript在浏览器中访问数据。在javascript中无法直接访问服务器上的数据库。

    总之,坚持下去,这是正确的方法。

        3
  •  1
  •   Steven A. Lowe    17 年前

    安全性参数有问题;对Web服务的身份验证与对数据库的身份验证没有区别。

    一般来说,将数据库操作转移到Web服务和SOA是有正当理由的,但安全性不是其中之一。

        4
  •  0
  •   Ironsides    17 年前

    如果您使用WebService,希望您在将数据发送到数据库时也会使用某种队列。如果您使用的是WebService和队列组合,那么安全性就可以实现,而丢失数据的机会就更少了。如果您没有WebService和Queue组合,如果您将数据发送到数据库,而它从未到达那里,那么您就没有了它,它就消失了。

    你是对的,但是如果有人想闯入你的系统,WebService不会帮助你,如果你把WebService公开,他们会发现你的WebService的名字,这可能会使情况更糟,因为这样他们就可以使用WebService查询你的数据库,你服务器上的任何安全功能都会认为它是你应用的。正在获取信息。