在阅读了很多主题以及有关如何通过 Android 应用访问外部数据库(MySQL)的 stackoverflow 问题之后,我的问题是:如何确保只有我的应用能够从该数据库中检索数据?这一切都与安全有关。
为了访问该数据库,我打算在我的服务器上创建一个小 PHP 文件,该文件将用作我的应用程序和数据库之间的接口。但是,如果任何人都可以看到使用的 URL,那么他也将能够与我的数据库进行交互。那么,我该如何防止呢?
谢谢你。
如果您的攻击者动机良好,那么您不能将通过外部 API 对数据库的访问限制为仅限于您的应用程序。
你可以让它变得更难(例如,通过使用存储在你的应用程序中的一个攻击者必须提取的秘密;混淆你的应用程序;使用谷歌的 Play 服务;等等),你可以创建威慑(限制使用你的 API 的许可),但从根本上说,您需要为其他人能够向您的 API 发送看起来像是来自您的应用程序的请求做好准备。
哪种方法组合合适将取决于第三方访问对您的影响。
Twitter 是一个有趣的案例研究,它使用许可来控制第三方对其 API 的访问。没有什么能阻止某人创建一个伪装成官方客户的客户,除了威慑,如果他们的规模大到足以让 Twitter 注意到,他们将通过法律渠道追捕他们。