我正在开发一个Android应用程序,用户可以使用Android Facebook SDK注册。我正在使用Google Volley库向我的PHP页面发出http请求,以便从MySql数据库接收JSON数据。我想存储有关用户的个人信息,稍后从数据库中检索它们。我花了一整天的时间来研究如何保护android-php连接的Google方式。我遇到的最流行的解决方案之一是发送带有post请求的哈希密钥,并通过PHP验证哈希密钥。像这样:
if($_POST['secret'] != '3CH6knCsYmvA2fdghfdfgmf3JqmUctCM') {
header('HTTP/1.1 403 Forbidden');
error_log("ERROR: wrong secret: " . $_POST['secret']);
exit("Access denied");
}
上面代码的问题是,一些黑客可以解压缩任何apk文件并查看代码并轻松找出它们的密钥哈希是什么。由于我没有用户名和密码的自定义登录系统来验证用户,我可以使用什么来保护android和php之间的连接?我需要一个示例或指向教程的链接或有关此类问题的既定解决方案的任何建议。
这个问题在Stack Overflow上并不新鲜,但其他类似问题已有2年或3年的历史,这在Android的快速发展世界中被认为是历史性的。
答案 0 :(得分:3)
保护服务器和应用之间的连接?只需使用Https。现在,如果您想要这样做只有您的应用程序可以访问该Web服务 - 需要在它们之间共享某种秘密来检查。通常这是用户输入的密码。用户输入它的事实可以保护您的应用免受黑客攻击,因为信息不在应用中。如果您不想让用户输入它,那么它需要在您的应用程序中。这意味着任何真正想要它的黑客都会得到它。你可以稍微模糊一下,但最终会找到它。
基本上,为了确保它不能进行逆向工程,您需要用户和完整的登录系统。