android 如何在源代码中隐藏或保护 url link

android how to hide or protect from url link in source code

我在我的应用程序中使用 url link 从服务器发送和接收数据。如果有人反编译我的 apk 文件并获取源代码,可以使用 url 并发送垃圾邮件或免费购买!

现在我该如何保护 url links?

这是我使用的服务器请求示例。 (在完成申请之前我仍然使用本地服务器)

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 链接。您可能会混淆您的代码,但有一些工具可以逆转混淆。

如果有人想反编译你的代码并对其进行反混淆,那是因为他们认为你一定有一些有价值的东西可以追求。在这种情况下,您的安全方法是完全错误的;易受攻击的是您的服务器或网络服务,而不仅仅是您的应用程序。

  1. 您的代码不使用 HTTPS,因此只需 "sniffing" 网络 流量将显示 URL。一个"sniffer"也可以 查看响应数据。
  2. 您应该使用 HTTPS,这意味着修改您的服务器配置和 获得站点证书。但这并不能解决您的代码 可以很容易地检查 URLs。而HTTPS只会加密数据 被交换,而不是 URL 用于建立连接,所以一旦 URL 已知,就可以使用它们 在 HTTPS 网站上,用户仍然可以在没有您的应用程序的情况下获取数据。
  3. 大多数你必须为某些东西付费的网站都使用某种安全的 支付包(电子商务)或用户登录(订阅服务)。您应该在线搜索付款 打包和重新设计以获得更安全的 Web 服务。

抱歉,如果这不是您想要的。