我在我的应用程序中使用 url 链接从服务器发送和接收数据。如果有人反编译我的 apk 文件并获取源代码,可以使用 url 发送垃圾邮件或免费购买!
现在如何保护 url 链接?
这是我使用的服务器请求示例。 (我仍然使用本地服务器直到完成应用程序)
public class GetProduct {
ArrayList<Product> arrayList;
ProgressDialog progressDialog;
String url = "http://192.168.43.46/fasabazar/android/getProductsFullInfo";
OnProductRecieved onProductRecieved = null;
public GetProduct(final OnProductRecieved onProductRecieved, final Context context) {
arrayList = new ArrayList<>();
progressDialog = new ProgressDialog(context);
this.onProductRecieved = onProductRecieved;
JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET, url, null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
JSONArray jsonArray = (JSONArray) response;
progressDialog.dismiss();
onProductRecieved.OnRecieved(response);
// Toast.makeText(context, jsonArray.toString(), Toast.LENGTH_SHORT).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
progressDialog.show();
request.setRetryPolicy(new DefaultRetryPolicy(7000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
RequestQueue requestQueue = Volley.newRequestQueue(context);
requestQueue.add(request);
}
public interface OnProductRecieved {
void OnRecieved(JSONArray response);
}
}
最佳答案
您无法可靠地保护这些 URL 链接。您可以混淆您的代码,但有一些工具可以逆转混淆。
如果有人想反编译您的代码并对其进行反混淆,那是因为他们认为您一定有值得追求的东西。在这种情况下,您的安全方法是完全错误的;易受攻击的是您的服务器或网络服务,而不仅仅是您的应用程序。
- 您的代码不使用 HTTPS,因此只需“嗅探”网络 流量将显示 URL。 “嗅探器”也可以 查看响应数据。
- 您应该使用 HTTPS,这意味着修改您的服务器配置和 获得站点证书。但这并不能解决您的代码 cab 可以很容易地检查 URL。而HTTPS只会加密数据 正在交换,而不是用于建立连接的 URL,因此一旦 URL 已知,就可以使用它们 在 HTTPS 网站上,用户仍然可以在没有您的应用程序的情况下获取数据。
- 您必须为某些东西付费的大多数网站都使用某种安全的 支付包(电子商务)或用户登录(订阅服务)。您应该在线搜索付款 打包和重新设计以获得更安全的网络服务。
抱歉,如果这不是您想要的。
关于android如何隐藏或保护源代码中的url链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48687038/