【发布时间】:2019-01-06 20:28:19
【问题描述】:
我有一个带有网络服务 URL 的 Android 应用程序。如果有人解密我的 apk 文件,webservice url 将变得可见。我正在使用 HTTP POST 调用 web 服务。
任何人都可以通过从this site反编译apk文件来读取代码。
我的注册页面 url 被黑了,并向该 url 发送批量请求和发布数据。我正在使用API_KEY 并发送带有帖子数据的API_KEY。 API_KEY 存储在 gradle.properties 文件中。
我没用过
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'` when its got hacked.
经过一番搜索,我知道没有 100% 安全的方法可以隐藏 url。
我的注册码是:
String link = "http://xxxxxxxxxx.php";
String data = URLEncoder.encode("name", "UTF-8") + "=" + URLEncoder.encode(name, "UTF-8");
data += "&" + URLEncoder.encode("phone", "UTF-8") + "=" + URLEncoder.encode(phone, "UTF-8");
data += "&" + URLEncoder.encode("password", "UTF-8") + "=" + URLEncoder.encode(password, "UTF-8");
URL url = new URL(link);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
我不知道将数据发布到 Url 是否是正确的方法。
如何保护我的源代码?
我可以将我所有的网络服务 url 存储在服务器中吗?
我是安卓的初学者。请帮忙!
【问题讨论】:
-
您需要在后端添加逻辑以使用您的 URL 访问任何服务需要由后端生成的访问令牌,因此即使有人获取 URL,它也无法在没有访问令牌的情况下使用 URL 访问服务.
-
@HareshChhelana 但他们可以从 apk 文件中找到访问令牌。
-
很明显,你没有把它放在APK文件里。您通过其他方式向用户提供个人令牌。
-
@HareshChhelana 感谢您的回答。
-
不明白为什么人们反对我的问题。
标签: android web-services security post encryption