有一些谣言浮出水面,我公司的团队很快将使用网络服务进行所有未来的应用程序开发。该架构应该是这样的:
申请 - >网络服务 - >数据库
其背后的理由是安全性。这听起来像是浪费大量时间,几乎没有任何好处。我的问题是,Web服务在哪些方面使您的数据比数据库更安全?我认为如果攻击者想要获取所有数据并且已经进入应用服务器,那么弄清楚应用程序如何获取数据将是相当简单的。
请记住,这些Web服务纯粹用于数据,并且几乎没有任何业务/验证逻辑,并且也应该在应用程序开发人员的控制之外(至少这是它与以前的所有应用程序一起使用的方式)使用过网络服务。)
答案 0 :(得分:4)
Web服务的一个重要特点是互操作性,以便以后来自不同平台的不同应用程序可以利用服务和数据。这样做可以使您的公司受益匪浅。你是对的安全性,它绝对是使用Web服务而不是公开数据库的公共端点的好理由之一,这很危险!
Web服务支持您的数据的可访问性,例如,您可以通过javascript在浏览器中访问您的数据。无法直接在Javascript中访问服务器上的数据库。
总而言之,去吧,这是正确的方法。
答案 1 :(得分:4)
如果Web服务上没有业务逻辑或验证,那么添加额外的抽象层只会带来有限的安全优势。我说有限,因为你的应用程序和数据库之间的接口仍然比他们直接相互交谈时更有限。
如果您将等式和业务逻辑添加到等式中,则具有显着的安全性优势,因为任何有权访问应用程序帐户的人都只能执行应用程序能够执行的数据库。此外,这是一个更好的设计,因为它减少了应用程序与数据如何存储在数据库中的实现细节之间的耦合。如果要更改数据库架构,则只需更新Web服务,而不是整个应用程序。
答案 2 :(得分:1)
安全论证值得怀疑;对Web服务进行身份验证与对数据库进行身份验证没有什么不同
将数据库操作移动到Web服务和SOA通常是合理的原因,但安全性不是其中之一
答案 3 :(得分:0)
如果您使用Web服务,希望您在将数据发送到数据库时也会使用某种队列。如果您使用的是Web服务和队列组合,那么安全性就会降低,数据丢失的可能性就会降低。如果您没有Web服务和队列组合,如果您将数据发送到数据库并且它永远不会到达那里,那么您没有它可以去它只是消失。
你是正确的,但是如果有人想要进入你的系统,如果你公开web服务并且他们找到了你的webservice的名称,那么他们可以只查询你的数据库,如果有什么可能会使它变得更糟使用Web服务和服务器上的任何安全功能只会认为是应用程序获取信息。