2012-01-19 85 views
1

我正在开发一个应用程序,在别人的帮助下为我正在开发的网站开发。正在开发的这个应用程序将需要访问Web服务器上的数据库。所以我的问题通常是我想让我的服务器访问限于特定的IP地址。移动设备都有我所听到的自己的IP。所以,如果是这种情况,我基本上必须打开我的数据库访问权限,以允许任何入站远程连接。这比尽可能多,但我预计这会带来潜在的安全风险。即有人试图暴力破解数据库以获得root权限或其他方面的效果。有了这个我的问题归根结底,是否有一种更安全的方式来做我需要的整体?有没有什么方法可以让我多一点安心。我目前使用的数据库是mySQL,并且将来一般会保持这种类型。Android到Web服务器开发mySql

回答

2

您对安全风险的担忧是有效的。您应该避免无数移动应用程序正在将数据库连接到MySQL数据库的情况。更好的解决方案是在数据库之前托管一个REST API层。这将允许您控制访问数据库的哪些部分,但也可能包含认证例程。您发布的REST Web服务将使您有机会生成允许的数据表示,而不是原始数据访问。这意味着除了生成Web服务之外,还需要将应用程序开发为一个REST客户端,它可以根据需要使用这些服务或向他们发出“请求”。显然,这需要规划双方的发展(后端和前端)。

一个可能的解决方案考虑生产REST Web服务是在这里:

http://phprestsql.sourceforge.net/

有许多可用于PHP,Java和ASP.NET和其他平台的附加框架。

http://peej.github.com/tonic/

http://jersey.java.net/

祝你好运!

+0

太棒了,谢谢。我知道它在任何程度上看起来都不太合适,但我可以理解,打开我的数据库也许对某个特定的IP没有什么保护,尽管我可能会以某种方式将其隧道化。不要以为你知道一个好的教程不是超级技术,我可以基于Android Dev和Web Side通信浏览。或者像教程这样的非技术类非常好的技术,所以在我让我的合作伙伴进一步同意我们在这个移动应用程序开发方面的顾问之前,我可以至少熟悉一下。 – chris

+0

网络上有多种来源可以帮助您了解如何以服务器和客户端的方式访问Web服务。您不仅需要了解REST的基础知识以及如何公开数据资源,还需要了解如何正确使用它们并将它们转换为Android中的可用实体。我建议[这个StackOverflow问题](http:// stackoverflow。com/questions/6827881/how-to-use-webservices-in-android)选择了有关在Android上使用Web服务的链接集合的答案。 – mchandler

2

为什么不通过API访问数据库,然后保护API?因此,本质上,您应该在您的移动应用程序会话的Web服务器上有一个REST(或任何)API,随后会与数据库通信。访问和保护您的API将使设计更加清洁和精简。

+0

原因是我对Android或移动到服务器应用程序不熟悉,而且我主要讨论的是谁在咨询Android应用程序的开发,但整个概念并不适合我打开数据库像这样的未知数,说这里听到这个东西向我表明,移动到Web服务器不是像最初要求的那样打开数据库,而是说它坚持让顾问按照我的方式去做,或者他可以去其他地方。如果你知道我的意思,我不会为构建API的人员使用它。谢谢你的回答 – chris