Php Android安全:保存一个私有字符串

Php Android安全:保存一个私有字符串,php,android,mysql,string,security,Php,Android,Mysql,String,Security,我有一个关于安卓安全的具体问题 首先,我将描述我的问题: 我想通过PHP连接到数据库。但是每个人都可以从我用来连接PHP文件的apk中提取链接。这导致了一个问题:每个人都可以通过调用此链接来操作我的数据库。我想阻止SQL注入 我正在寻找解决这个问题的办法。 我的第一个想法,可能是最简单的,是创建一个完全私有的字符串,用于验证对PHP文件的访问。但我不知道如何保存这样的字符串,而不必冒从代码中提取的风险(例如,what a Strings.xml,或者干脆在代码中编写)。 有没有一个简单的方法,使

我有一个关于安卓安全的具体问题

首先,我将描述我的问题: 我想通过PHP连接到数据库。但是每个人都可以从我用来连接PHP文件的apk中提取链接。这导致了一个问题:每个人都可以通过调用此链接来操作我的数据库。我想阻止SQL注入

我正在寻找解决这个问题的办法。 我的第一个想法,可能是最简单的,是创建一个完全私有的字符串,用于验证对PHP文件的访问。但我不知道如何保存这样的字符串,而不必冒从代码中提取的风险(例如,what a Strings.xml,或者干脆在代码中编写)。 有没有一个简单的方法,使字符串在我的APK中完全私有(这样就没有人可以提取它)?
或者有人有更好的解决方案吗?

对应用程序进行反向工程并找出“秘密”url没有真正的安全措施


我建议您使用某种用户身份验证来保护该url。无论哪个客户端试图访问url,都应该对其进行保护。

存储在客户端中的所有内容都可以检索/欺骗等。在对数据库运行命令之前,您需要让客户端向服务器进行身份验证

您需要保护您的数据库,防止未经授权的访问。现在听起来你只是通过隐藏URL来使用“通过模糊实现安全”。这是个坏习惯。你不想找的人找到它只是时间问题。它甚至不需要逆向工程,只需浏览一下路由器日志即可


另外,当有人向SQL查询中注入恶意代码时,该查询是由未正确清理的代码创建的。此攻击在经过身份验证的会话中工作。这也是您需要注意的,但这不是您在问题中描述的风险。

当用户必须进行身份验证(例如提供用户名和密码)时,他也可以轻松地操作数据。这样做,我只能在事后作出反应,恢复未经处理的数据;(但感谢您的快速回答。听起来您需要更好地将API封装到服务器。将每个API调用都视为恶意调用。您是否知道如何向服务器验证客户端身份?可能是教程或其他内容?这将非常有帮助:)@user2167430有许多不同的方法让客户端进行身份验证。一种常见的方法是提供用户名和密码。我不会让数据库世界变得可访问,而是让一个RESTful web服务提前运行,为您处理身份验证,然后向数据库进行身份验证。