【问题标题】:Android to Web Server Development mySqlAndroid 到 Web 服务器开发 mySql
【发布时间】:2012-01-19 22:49:59
【问题描述】:

我正在其他人的帮助下为我正在开发的网站开发应用程序。正在开发的这个应用程序需要访问 Web 服务器上的数据库。所以我的问题通常是我希望将我的服务器访问限制在特定的 IP 上。据我所知,移动设备都有自己的 ip。因此,如果是这种情况,我基本上必须打开我的数据库访问权限以允许任何入站远程连接。这是不可能的,但我预见到这会带来潜在的安全风险。即有人试图强行强制数据库获得root访问权限或类似的东西的概念。有了这个,我的问题归结为是否有一种更安全的方式来做我需要做的事情?有没有什么方法可以让我安心一点。我目前使用的数据库是 mySQL,一般会一直保持这种类型,直到以后再使用。

【问题讨论】:

    标签: android mysql


    【解决方案1】:

    您对安全风险的担忧是有道理的。您应该避免无数移动应用程序与您的 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/

    祝你好运!

    【讨论】:

    • 太棒了,谢谢。我知道这在任何程度上似乎都不正确,我可以理解将我的数据库打开到一个几乎没有保护的特定 IP,尽管我可能会以某种方式对其进行隧道传输。不要以为您知道我可以基于 Android Dev 和 Web 端通信浏览的好教程而不是超级技术。或者任何好的非技术类,比如教程,这样在我让我的合作伙伴进一步同意我们在这个移动应用程序开发方面的顾问之前,我至少可以熟悉。
    • 网络上有几个资源可以帮助您很好地了解如何将网络服务作为服务器和客户端来处理。您不仅需要了解 REST 的基础知识以及如何公开数据资源,还需要了解如何正确使用它们并将它们转换为 Android 中的可用实体。我会推荐this StackOverflow question's 选择的答案,以获取有关在 Android 中使用 Web 服务的链接集合。
    【解决方案2】:

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

    【讨论】:

    • 原因是我不熟悉 Android 或 Mobile to Server 应用程序,而且我主要是在谈论谁在咨询 android 应用程序的开发,但整个概念并不适合我像那样向未知数开放数据库,说在这里听到这些东西向我表明,如果不像最初要求的那样打开数据库,Mobile To Web Server 是非常合理的,它说坚持顾问按照我的方式去做,或者他可以去别的地方。如果你明白我的意思,我可以毫无问题地为这个人构建一个 API。感谢您的回答
    猜你喜欢
    • 2013-05-28
    • 1970-01-01
    • 2012-05-21
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多