我使用应用程序中的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链接。您可能会混淆您的代码,但是有一些逆转混淆的工具。
如果某人想将您的代码进行解码并删除,那是因为他们认为您必须在那里有一个有价值的东西。在这种情况下,您的安全方法都是错误的。脆弱的是您的服务器或Web服务,而不仅仅是您的应用程序。
- 您的代码不使用HTTP,因此简单地"嗅探"网络流量将揭示URL。"嗅探器"也可以请参阅响应数据。
- 您应该使用https,这意味着修改服务器配置和获得站点证书。但这并不能解决您的代码可以轻松检查出驾驶室的URL。HTTPS仅加密数据被交换,而不是URL建立连接的使用,因此一旦知道URL,就可以使用它们在HTTPS网站上,用户仍然可以在没有应用程序的情况下获取数据。
- 大多数您必须为某种东西付款的网站使用某种安全的网站付款包(电子商务(或用户登录(订阅服务(。您应该在线搜索付款软件包和重新设计更安全的Web服务。
对不起,如果不是您想要的。