1

在阅读了很多主题以及有关如何通过 Android 应用访问外部数据库(MySQL)的 stackoverflow 问题之后,我的问题是:如何确保只有我的应用能够从该数据库中检索数据?这一切都与安全有关。

为了访问该数据库,我打算在我的服务器上创建一个小 PHP 文件,该文件将用作我的应用程序和数据库之间的接口。但是,如果任何人都可以看到使用的 URL,那么他也将能够与我的数据库进行交互。那么,我该如何防止呢?

谢谢你。

4

2 回答 2

3

HTTPS首先,老实说,我建议您使用传输协议,即使使用secret(具有特殊符号等)保护的自签名证书也是一种很好的保护。

然后您在您的服务器上创建验证此证书的 Web 服务(确保您没有硬编码证书机密),瞧。

编辑

假设您在谈论 android,我将在此处keytool为您提供教程。我还假设您知道如果您不知道该怎么做,您必须创建自定义处理程序才能将证书放入请求中,我一回家就可以发布它(我的项目在我的私人电脑)。带有服务器端证书验证的部分在这里HTTPS

于 2013-05-13T09:48:50.550 回答
0

如果您的攻击者动机良好,那么您不能将通过外部 API 对数据库的访问限制为仅限于您的应用程序。

你可以让它变得更难(例如,通过使用存储在你的应用程序中的一个攻击者必须提取的秘密;混淆你的应用程序;使用谷歌的 Play 服务;等等),你可以创建威慑(限制使用你的 API 的许可),但从根本上说,您需要为其他人能够向您的 API 发送看起来像是来自您的应用程序的请求做好准备。

哪种方法组合合适将取决于第三方访问对您的影响。

Twitter 是一个有趣的案例研究,它使用许可来控制第三方对其 API 的访问。没有什么能阻止某人创建一个伪装成官方客户的客户,除了威慑,如果他们的规模大到足以让 Twitter 注意到,他们将通过法律渠道追捕他们。

于 2013-05-14T17:03:34.910 回答