假设我有一个Android客户端应用程序调用Web服务从远程服务器的数据库中获取一些数据,这意味着在我的代码的某些部分,我将使用后端的URL来调用API我需要,现在可能有android de-compilers现在获取一个APK文件的源代码,这意味着我用来调用API的URL可能会受到某人的反编译我的应用程序,这是我的主要问题我想避免即使我已经使用身份验证来保护我的远程服务器,无论是基本服务器还是摘要,还是什么,我仍然不希望我的API的URL从头开始受到某人的影响,我怎么能避免这种情况发生了,是否有某种算法可以解码我的代码中的URL,所以当我的APK被解编译时,我调用的这些API的地址不会被曝光?
答案 0 :(得分:0)
无法阻止攻击者获取该网址。您应该拥有一些每个用户都有的apikey或密码,以防止未经授权访问您的API。
由于攻击者拥有apk,并且由于应用程序必须知道要使用的url,因此攻击者可以使用apk中的某些逻辑来获取url,nomatter url-isfuscation的花哨方案你想出来了。
答案 1 :(得分:-2)
即使您使用Androids built-in obfuscator,您的代码几乎可以在所有情况下进行逆向工程。你只能让攻击者更难。所以包括apikey或密码也不起作用 - 因为这个超级机密信息也必须存储在某个地方。
但最大的问题是:无论你做什么,监控网络流量都会在任何情况下显示 URL 服务器的位置。
所以唯一的解决方案是设计你的服务器,它可以处理" evil"要求。没有办法绕过它,否则你的服务器可能被黑了!所以......